diff --git a/resources/lib/clientinfo.py b/resources/lib/clientinfo.py
index 38b2e046..2fa74155 100644
--- a/resources/lib/clientinfo.py
+++ b/resources/lib/clientinfo.py
@@ -19,28 +19,26 @@ log = logging.getLogger("EMBY."+__name__)
 ##################################################################################################
 
 
-class ClientInfo():
+class ClientInfo(object):
 
 
     def __init__(self):
 
         self.addon = xbmcaddon.Addon()
-        self.addonName = self.getAddonName()
-
 
     def getAddonName(self):
         # Used for logging
         return self.addon.getAddonInfo('name').upper()
 
-    def getAddonId(self):
-
+    @classmethod
+    def getAddonId(cls):
         return "plugin.video.emby"
 
     def getVersion(self):
-
         return self.addon.getAddonInfo('version')
 
-    def getDeviceName(self):
+    @classmethod
+    def getDeviceName(cls):
 
         if settings('deviceNameOpt') == "false":
             # Use Kodi's deviceName
@@ -64,42 +62,49 @@ class ClientInfo():
             return "Windows"
         elif xbmc.getCondVisibility('system.platform.android'):
             return "Linux/Android"
-        elif xbmc.getCondVisibility('system.platform.linux.raspberrypi'): 
+        elif xbmc.getCondVisibility('system.platform.linux.raspberrypi'):
             return "Linux/RPi"
-        elif xbmc.getCondVisibility('system.platform.linux'): 
+        elif xbmc.getCondVisibility('system.platform.linux'):
             return "Linux"
         else:
             return "Unknown"
 
     def getDeviceId(self, reset=False):
 
-        clientId = window('emby_deviceId')
-        if clientId:
-            return clientId
+        client_id = window('emby_deviceId')
+        if client_id:
+            return client_id
 
-        addon_path = self.addon.getAddonInfo('path').decode('utf-8')
-        if os.path.supports_unicode_filenames:
-            path = os.path.join(addon_path, "machine_guid")
-        else:
-            path = os.path.join(addon_path.encode('utf-8'), "machine_guid")
+        emby_guid = xbmc.translatePath("special://temp/emby_guid").decode('utf-8')
         
-        GUID_file = xbmc.translatePath(path).decode('utf-8')
-        
-        if reset and xbmcvfs.exists(GUID_file):
+        ###$ Begin migration $###
+        if not xbmcvfs.exists(emby_guid):
+            addon_path = self.addon.getAddonInfo('path').decode('utf-8')
+            if os.path.supports_unicode_filenames:
+                path = os.path.join(addon_path, "machine_guid")
+            else:
+                path = os.path.join(addon_path.encode('utf-8'), "machine_guid")
+            
+            guid_file = xbmc.translatePath(path).decode('utf-8')
+            if xbmcvfs.exists(guid_file):
+                xbmcvfs.copy(guid_file, emby_guid)
+        ###$ End migration $###
+
+        if reset and xbmcvfs.exists(emby_guid):
             # Reset the file
-            xbmcvfs.delete(GUID_file)
+            xbmcvfs.delete(emby_guid)
 
-        GUID = xbmcvfs.File(GUID_file)
-        clientId = GUID.read()
-        if not clientId:
-            log.info("Generating a new deviceid...")
-            clientId = str("%012X" % uuid4())
-            GUID = xbmcvfs.File(GUID_file, 'w')
-            GUID.write(clientId)
+        guid = xbmcvfs.File(emby_guid)
+        client_id = guid.read()
+        if not client_id:
+            log.info("Generating a new guid...")
+            client_id = str("%012X" % uuid4())
+            guid = xbmcvfs.File(emby_guid, 'w')
+            guid.write(client_id)
 
-        GUID.close()
+        guid.close()
 
-        log.info("DeviceId loaded: %s" % clientId)
-        window('emby_deviceId', value=clientId)
-        
-        return clientId
+        log.info("DeviceId loaded: %s", client_id)
+        window('emby_deviceId', value=client_id)
+
+        return client_id
diff --git a/resources/lib/initialsetup.py b/resources/lib/initialsetup.py
index e766a662..14209ba3 100644
--- a/resources/lib/initialsetup.py
+++ b/resources/lib/initialsetup.py
@@ -40,14 +40,14 @@ class InitialSetup(object):
 
         log.debug("Initial setup called.")
 
-        ###$ Begin transition phase $###
+        ###$ Begin migration $###
         if settings('server') == "":
             current_server = self.user_client.get_server()
             server = self.connectmanager.get_server(current_server)
             settings('ServerId', value=server['Id'])
             self.user_client.get_userid()
             self.user_client.get_token()
-        ###$ End transition phase $###
+        ###$ End migration $###
 
         if settings('server'):
             current_state = self.connectmanager.get_state()
diff --git a/resources/lib/userclient.py b/resources/lib/userclient.py
index cfd274a1..bb56f029 100644
--- a/resources/lib/userclient.py
+++ b/resources/lib/userclient.py
@@ -60,7 +60,7 @@ class UserClient(threading.Thread):
     @classmethod
     def get_server(cls):
 
-        ###$ Begin transition phase $###
+        ###$ Begin migration $###
         if settings('server') == "":
             http = "https" if settings('https') == "true" else "http"
             host = settings('ipaddress')
@@ -68,7 +68,7 @@ class UserClient(threading.Thread):
 
             if host and port:
                 settings('server', value="%s://%s:%s" % (http, host, port))
-        ###$ End transition phase $###
+        ###$ End migration $###
 
         return settings('server') or None
 
@@ -120,20 +120,20 @@ class UserClient(threading.Thread):
     @classmethod
     def get_userid(cls):
 
-        ###$ Begin transition phase $###
+        ###$ Begin migration $###
         if settings('userId') == "":
             settings('userId', value=settings('userId%s' % settings('username')))
-        ###$ End transition phase $###
+        ###$ End migration $###
 
         return settings('userId') or None
 
     @classmethod
     def get_token(cls):
 
-        ###$ Begin transition phase $###
+        ###$ Begin migration $###
         if settings('token') == "":
             settings('token', value=settings('accessToken'))
-        ###$ End transition phase $###
+        ###$ End migration $###
 
         return settings('token') or None