diff --git a/resources/lib/CreateFiles.py b/resources/lib/CreateFiles.py
index 8acbfd66..b478dc27 100644
--- a/resources/lib/CreateFiles.py
+++ b/resources/lib/CreateFiles.py
@@ -39,11 +39,11 @@ class CreateFiles():
         if item_type == "Episode":
             itemPath = os.path.join(tvLibrary,parentId)
             if str(item.get("IndexNumber")) != None:
-                filenamestr = self.CleanName(item.get("SeriesName")).encode('utf-8') + " S" + str(item.get("ParentIndexNumber")) + "E" + str(item.get("IndexNumber")) + ".strm"
+                filenamestr = self.CleanName(item.get("SeriesName")).encode('utf-8') + " S" + str(item.get("ParentIndexNumber")) + "E" + str(item.get("IndexNumber")) + " (" + item["Id"] + ").strm"
             else:
-                filenamestr = self.CleanName(item.get("SeriesName")).encode('utf-8') + " S0E0 " + item["Name"].decode('utf-8') + ".strm"
+                filenamestr = self.CleanName(item.get("SeriesName")).encode('utf-8') + " S0E0 " + self.CleanName(item["Name"].decode('utf-8')) + " (" + item["Id"] + ").strm"
             strmFile = os.path.join(itemPath,filenamestr)
-        
+
         changes = False
         if not xbmcvfs.exists(strmFile):
             changes = True
@@ -81,12 +81,13 @@ class CreateFiles():
         if item_type == "Episode":
             itemPath = os.path.join(tvLibrary,parentId)
             if str(item.get("ParentIndexNumber")) != None:
-                filenamestr = self.CleanName(item.get("SeriesName")).encode('utf-8') + " S" + str(item.get("ParentIndexNumber")) + "E" + str(item.get("IndexNumber")) + ".nfo"
+                filenamestr = self.CleanName(item.get("SeriesName")).encode('utf-8') + " S" + str(item.get("ParentIndexNumber")) + "E" + str(item.get("IndexNumber")) + " (" + item["Id"] + ").nfo"
             else:
-                filenamestr = self.CleanName(item.get("SeriesName")).encode('utf-8') + " S0E0 " + item["Name"].decode('utf-8') + ".nfo"
+                filenamestr = self.CleanName(item.get("SeriesName")).encode('utf-8') + " S0E0 " + self.CleanName(item["Name"].decode('utf-8')) + " (" + item["Id"] + ").nfo"
             nfoFile = os.path.join(itemPath,filenamestr)
             rootelement = "episodedetails"
-        
+            
+            
         changes = False
         if not xbmcvfs.exists(nfoFile):
             changes = True
@@ -212,4 +213,6 @@ class CreateFiles():
         
     def CleanName(self, name):
         name = name.replace(":", "-")
+        name = name.replace("\\", "-")
+        name = name.replace("/", "-")
         return name    
diff --git a/resources/lib/KodiMonitor.py b/resources/lib/KodiMonitor.py
index df386390..fb826ead 100644
--- a/resources/lib/KodiMonitor.py
+++ b/resources/lib/KodiMonitor.py
@@ -9,11 +9,7 @@ import xbmcaddon
 import json
 
 import Utils as utils
-from LibrarySync import LibrarySync
-
-librarySync = LibrarySync()
-
-WINDOW = xbmcgui.Window( 10000 )
+from WriteKodiDB import WriteKodiDB
 
 class Kodi_Monitor(xbmc.Monitor):
     def __init__(self, *args, **kwargs):
@@ -27,14 +23,16 @@ class Kodi_Monitor(xbmc.Monitor):
         if method == "VideoLibrary.OnUpdate":
             
             #check windowprop if the sync is busy to prevent any false updates
+            WINDOW = xbmcgui.Window( 10000 )
             if WINDOW.getProperty("librarysync") != "busy":
-            
+                xbmc.log("Kodi_Monitor -> onNotification -> VideoLibrary.OnUpdate : " + str(data))
                 jsondata = json.loads(data)
                 if jsondata != None:
                     playcount = None
                     playcount = jsondata.get("playcount")
                     item = jsondata.get("item").get("id")
+                    type = jsondata.get("item").get("type")
                     
                     if playcount != None:
-                        librarySync.updatePlayCountFromKodi(item, playcount)
+                        WriteKodiDB().updatePlayCountFromKodi(item, type, playcount)
 
diff --git a/resources/lib/ReadEmbyDB.py b/resources/lib/ReadEmbyDB.py
index d06648d4..d6b46555 100644
--- a/resources/lib/ReadEmbyDB.py
+++ b/resources/lib/ReadEmbyDB.py
@@ -94,11 +94,12 @@ class ReadEmbyDB():
         
         viewsUrl = server + "/mediabrowser/Users/" + userid + "/Views?format=json&ImageTypeLimit=1"
         jsonData = DownloadUtils().downloadUrl(viewsUrl, suppress=True, popup=0 )
+        collections=[]
         
         if(jsonData != ""):
             views = json.loads(jsonData)
             views = views.get("Items")
-            collections=[]
+
             for view in views:
                 if view.get("Type") == 'UserView': # Need to grab the real main node
                     newViewsUrl = server + '/mediabrowser/Users/' + userid + '/items?ParentId=' + view.get("Id") + '&SortBy=SortName&SortOrder=Ascending&format=json&ImageTypeLimit=1'
diff --git a/resources/lib/WriteKodiDB.py b/resources/lib/WriteKodiDB.py
index 34f235ba..f5dd229c 100644
--- a/resources/lib/WriteKodiDB.py
+++ b/resources/lib/WriteKodiDB.py
@@ -25,37 +25,51 @@ movieLibrary = os.path.join(dataPath,'movies')
 tvLibrary = os.path.join(dataPath,'tvshows')
 sleepVal = 10
 
-class WriteKodiDB():  
-    def updatePlayCountFromKodi(self, id, playcount=0):
-        #when user marks item watched from kodi interface update this to MB3
-        
-        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
-        port = addon.getSetting('port')
-        host = addon.getSetting('ipaddress')
-        server = host + ":" + port        
-        downloadUtils = DownloadUtils()
-        userid = downloadUtils.getUserId()           
-        
-        print "updateplaycount called!"
-        
-        # TODO --> extend support for episodes
-        json_response = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieDetails", "params": { "movieid": ' + str(id) + ', "properties" : ["playcount", "file"] }, "id": "1"}')
-        if json_response != None:
-            jsonobject = json.loads(json_response.decode('utf-8','replace'))  
-            movie = None
-            if(jsonobject.has_key('result')):
-                result = jsonobject['result']
-                if(result.has_key('moviedetails')):
-                    moviedetails = result['moviedetails']
-                    filename = moviedetails.get("file").rpartition('\\')[2]
-                    mb3Id = filename.replace(".strm","")
+class WriteKodiDB():
 
-                    watchedurl = 'http://' + server + '/mediabrowser/Users/' + userid + '/PlayedItems/' + mb3Id
-                    utils.logMsg("MB3 Sync","watchedurl -->" + watchedurl)
-                    if playcount != 0:
-                        downloadUtils.downloadUrl(watchedurl, postBody="", type="POST")
-                    else:
-                        downloadUtils.downloadUrl(watchedurl, type="DELETE")
+    def updatePlayCountFromKodi(self, id, type, playcount=0):
+        #when user marks item watched from kodi interface update this in MB3
+        xbmc.log("WriteKodiDB -> updatePlayCountFromKodi Called")
+        
+        mb3Id = None
+        if(type == "movie"):
+            mb3Id = None
+            json_response = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetMovieDetails", "params": { "movieid": ' + str(id) + ', "properties" : ["playcount", "file"] }, "id": "1"}')
+            if json_response != None:
+                jsonobject = json.loads(json_response.decode('utf-8','replace'))  
+                if(jsonobject.has_key('result')):
+                    result = jsonobject['result']
+                    if(result.has_key('moviedetails')):
+                        moviedetails = result['moviedetails']
+                        filename = moviedetails.get("file").rpartition('\\')[2]
+                        mb3Id = filename.replace(".strm","")
+        
+        elif(type == "episode"):
+            mb3Id = None
+            json_response = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetEpisodeDetails", "params": { "episodeid": ' + str(id) + ', "properties" : ["playcount", "file"] }, "id": "1"}')
+            if json_response != None:
+                jsonobject = json.loads(json_response.decode('utf-8','replace'))  
+                if(jsonobject.has_key('result')):
+                    result = jsonobject['result']
+                    if(result.has_key('episodedetails')):
+                        episodedetails = result['episodedetails']
+                        filename = episodedetails.get("file").rpartition('\\')[2]
+                        mb3Id = filename[-38:-6]
+
+        if(mb3Id != None):
+            addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
+            port = addon.getSetting('port')
+            host = addon.getSetting('ipaddress')
+            server = host + ":" + port        
+            downloadUtils = DownloadUtils()
+            userid = downloadUtils.getUserId()           
+        
+            watchedurl = 'http://' + server + '/mediabrowser/Users/' + userid + '/PlayedItems/' + mb3Id
+            utils.logMsg("MB3 Sync","watchedurl -->" + watchedurl)
+            if playcount != 0:
+                downloadUtils.downloadUrl(watchedurl, postBody="", type="POST")
+            else:
+                downloadUtils.downloadUrl(watchedurl, type="DELETE")
         
     def updateMovieToKodiLibrary( self, MBitem, KodiItem ):