diff --git a/miscellaneous/laborclient/cloudgui/gui.py b/miscellaneous/laborclient/cloudgui/gui.py
index 4cb9ba2..55e9ce8 100755
--- a/miscellaneous/laborclient/cloudgui/gui.py
+++ b/miscellaneous/laborclient/cloudgui/gui.py
@@ -8,10 +8,9 @@ import os
 import sys
 import rdp
 from multiprocessing import Process
-### Settings ###
-KEY_DIR = "/tmp/"
-KEY_FILE = KEY_DIR+"/id_rsa"
-
+import subprocess
+import tempfile
+import getpass
 
 class KeyGen:
     """Attributes:
@@ -61,10 +60,12 @@ class KeyGen:
 
 
 class Browser:
+    version = "0.1"
     neptun = ""
     host = ""
     private_key_file = ""
     public_key_b64 = ""
+    params = {}
     def __init__(self):
         #Init window components
         gobject.threads_init()
@@ -74,46 +75,28 @@ class Browser:
 
 
         #DEBUG
-        print self.window.get_resizable()
         self.window.set_decorated(True)
-
-        #self.window.connect(
-
         self.window.set_title("IK CloudStore Login")
         self.window.set_default_size(1024,600)
         self.window.set_position(gtk.WIN_POS_CENTER)
 
-        #Init toolbar
-        self.toolbar = gtk.Toolbar()
-
         #Init browser
         self.webview = webkit.WebView()
         self.webview.connect('onload-event', self.load_committed_cb)
-#        self.webview.open("http://10.9.1.86:8080")
         self.webview.open("https://cloud.ik.bme.hu/store/gui/")
         self.webview.connect("navigation-requested", self.on_navigation_requested)
-        #self.webview.open("http://index.hu")
-        
-        #Sample button
-        self.help_button = gtk.ToolButton(gtk.STOCK_HELP)
-        self.help_button.connect("clicked",self.hello)
-        self.store_button = gtk.ToolButton(gtk.STOCK_HOME)
-        self.store_button.connect("clicked",self.store)
-        
+        settings = webkit.WebSettings()
+        settings.set_property('user-agent', 'cloud-gui '+self.version)
+        self.webview.set_settings(settings)
+
         #Connect things
-        self.toolbar.add(self.store_button)
-        self.toolbar.add(self.help_button)
-        self.vbox = gtk.VBox(False, 0)
-        #self.vbox.pack_start(self.toolbar, False, True, 0)
         self.scrolledwindow = gtk.ScrolledWindow()
         self.scrolledwindow.add(self.webview)
-        self.vbox.add(self.scrolledwindow)
-        self.window.add(self.vbox)
-        #self.window.add(self.webview)
+        self.window.add(self.scrolledwindow)
         self.window.maximize()
         self.window.show_all()
 
-    def init_keypair():
+    def init_keypair(self):
         keygen = KeyGen()
         private_key = keygen.private_key
         public_key = keygen.public_key
@@ -125,73 +108,86 @@ class Browser:
         self.public_key_b64 =  base64.b64encode(public_key)
     
     def destroy(self, dummy):
-        self.webview.execute_script("resetKey()")
+        self.umount_sshfs_folder()
         gtk.main_quit()
 
     def on_navigation_requested(self, view, frame, req, data=None):
         uri = req.get_uri()
-        print "On nav: " + uri
-        scheme, rest = uri.split(':', 1)
-        #print scheme
+        if uri == "https://cloud.ik.bme.hu/logout/":
+            self.umount_sshfs_folder()
+        try:
+            scheme, rest = uri.split(":", 1)
+            if scheme == "nx" or scheme == "rdp" or scheme == "sshterm":
+                connection = rdp.RDP(uri)
+                Process(target=connection.connect).start()
+                return True
+            else:
+                return False
+        except:
+            False
+    def mount_sshfs_folder(self):
+        user = getpass.getuser()
+        neptun = self.params["neptun"]
+        host = self.params["host"]
         try:
-            self.neptun, rest = rest.split(':', 1)
-            #print "Nep: "+neptun
-            self.host, values = rest.split('?', 1)
-            #print "Host: "+host
-            #print "Values: "+values
+            os.makedirs("/home/"+user+"/sshfs", 0644)
         except:
             pass
-        if scheme == 'login':
-            self.webview.execute_script("postKey(\"%s\")" % self.public_key_b64)
-            self.webview.execute_script("document.getElementById(\"login_button\").hidden=true ;")
-            self.webview.execute_script("document.getElementById(\"logout_button\").hidden=false ;")
-            self.webview.execute_script("document.getElementById(\"mount_button\").hidden=false ;")
-            return True
-        elif scheme == 'logout':
-            self.webview.execute_script("resetKey()")
-            self.webview.execute_script("document.getElementById(\"logout_button\").hidden=true ;")
-            self.webview.execute_script("document.getElementById(\"login_button\").hidden=false ;")
-            self.webview.execute_script("document.getElementById(\"mount_button\").hidden=true ;")
-            return True
-        elif scheme == "mount":
-            self.mount_sshfs_folder(self.neptun,self.host)
-            self.webview.execute_script("document.getElementById(\"mount_button\").hidden=true ;")
-            self.webview.execute_script("document.getElementById(\"umount_button\").hidden=false ;")
-            return True
-        elif scheme == "umount":
-            self.umount_sshfs_folder()
-            self.webview.execute_script("document.getElementById(\"mount_button\").hidden=false ;")
-            self.webview.execute_script("document.getElementById(\"umount_button\").hidden=true ;")
-            return True
-        elif scheme == "nx" or scheme == "rdp" or scheme == "sshterm":
-            connection = rdp.RDP(uri)
-            Process(target=connection.connect).start()
-            return True
-        else:
-            return False
-    def mount_sshfs_folder(self,neptun,host):
-        with open(os.devnull, "w") as fnull:
-            result = subprocess.call(['/usr/bin/sshfs', '-o', 'IdentityFile='+KEY_DIR+"/id_rsa", neptun+"@"+host+":home", "/home/tarokkk/sshfs"])
+        result = subprocess.call(['/usr/bin/sshfs', '-o', 'IdentityFile='+self.private_key_file, neptun+"@"+host+":home", "/home/"+user+"/sshfs"])
         #print result
     def umount_sshfs_folder(self):
-        with open(os.devnull, "w") as fnull:
+        try:
             result = subprocess.call(['/bin/fusermount', '-u', "/home/tarokkk/sshfs"])
-
-    def hello(self, widget):
-        self.webview.open("https://login.bme.hu/admin/")
-
-    def store(self, widget):
-        self.webview.open("https://cloud.ik.bme.hu/")
+        except:
+            pass
+    def post_key(self,key = None):
+        if key != None:
+            js = '''
+            $.post("/store/gui/", { "KEY" : "%(key)s" }, 
+                                function (respond) {
+                                    window.location = respond;
+                                    }
+                                )
+                             .error(function (respond) { alert(JSON.stringify(respond)); });
+                           ''' % { "key" : key }
+        else:
+            js = '''
+            $.post("/store/gui/", "", 
+                                function (respond) {
+                                    window.alert(respond);
+                                    }
+                                )
+                             .error(function (respond) { alert(JSON.stringify(respond)); });
+                           '''
+        self.webview.execute_script(js)
+        
     def load_committed_cb(self,web_view, frame):
-        self.webview.execute_script('document.getElementsByTagName("a")[0].target="";')
+        try:
+            self.webview.execute_script('document.getElementsByTagName("a")[0].target="";')
+        except:
+            pass
         uri = frame.get_uri()
-        if str(uri) == "https://cloud.ik.bme.hu/store/gui/":
-            self.webview.execute_script("postKey(\"%s\")" % self.public_key_b64)
-            print "Mounting"
-        #print uri
-        #print web_view.get_title()
-        return 
-
+        ### Send keys via JavaScript ###
+        if uri == "https://cloud.ik.bme.hu/store/gui/":
+            self.init_keypair()
+            ### JS
+            self.post_key(self.public_key_b64)
+            ### Parse values and do mounting ###
+            try:
+                uri, params = uri.split('?', 1)
+                values = params.split('&')
+                for p in values:
+                    key, value = p.split('=',1)
+                    self.params[key] = value
+                try:
+                    self.mount_sshfs_folder()
+                except Exception as e:
+                    print e
+                finally:
+                    os.unlink(self.private_key_file)
+            except:
+                pass 
+        return True
     def main(self):
         gtk.main()
     
@@ -199,5 +195,3 @@ if __name__ == "__main__":
     browser = Browser()
     browser.main()
 
-
-