diff --git a/resources/lib/LibrarySync.py b/resources/lib/LibrarySync.py
index f75d19e3..ed97e1f7 100644
--- a/resources/lib/LibrarySync.py
+++ b/resources/lib/LibrarySync.py
@@ -23,6 +23,7 @@ import xml.etree.cElementTree as ET
 from API import API
 import Utils as utils
 from DownloadUtils import DownloadUtils
+from ReadEmbyDB import ReadEmbyDB
 
 addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
 addondir = xbmc.translatePath(addon.getAddonInfo('profile'))
@@ -58,10 +59,10 @@ class LibrarySync():
             if processMovies:
                 allMovies = list()
                 
-                views = self.getCollections("movies")
+                views = ReadEmbyDB().getCollections("movies")
                 for view in views:
             
-                    movieData = self.getMovies(view.get('id'), True)
+                    movieData = ReadEmbyDB().getMovies(view.get('id'), True)
                 
                     if(self.ShouldStop()):
                         return True            
@@ -103,7 +104,7 @@ class LibrarySync():
             if processTvShows:
                 allTVShows = list()
                 allEpisodes = list()
-                tvShowData = self.getTVShows(True)
+                tvShowData = ReadEmbyDB().getTVShows(True)
                 
                 if(self.ShouldStop()):
                     return True            
@@ -146,7 +147,7 @@ class LibrarySync():
                 
                 for tvshow in allTVShows:
                     
-                    episodeData = self.getEpisodes(tvshow,True)
+                    episodeData = ReadEmbyDB().getEpisodes(tvshow,True)
                     kodiEpisodes = self.getKodiEpisodes(tvshow)
                     
                     if(self.ShouldStop()):
@@ -253,9 +254,9 @@ class LibrarySync():
         
             #process movies
             if processMovies:
-                views = self.getCollections("movies")
+                views = ReadEmbyDB().getCollections("movies")
                 for view in views:
-                    movieData = self.getMovies(view.get('id'),False)
+                    movieData = ReadEmbyDB().getMovies(view.get('id'),False)
                 
                     if(self.ShouldStop()):
                         return True
@@ -295,7 +296,7 @@ class LibrarySync():
                         
             #process Tv shows
             if processTvShows:
-                tvshowData = self.getTVShows(False)
+                tvshowData = ReadEmbyDB().getTVShows(False)
                 
                 if(self.ShouldStop()):
                     return True
@@ -305,7 +306,7 @@ class LibrarySync():
                 
                 for item in tvshowData:
                     xbmc.sleep(sleepVal)
-                    episodeData = self.getEpisodes(item["Id"], False)
+                    episodeData = ReadEmbyDB().getEpisodes(item["Id"], False)
                     
                     if (episodeData != None):
                         if(pDialog != None):
@@ -343,78 +344,6 @@ class LibrarySync():
         
         return True
     
-    def getMovies(self, id, fullinfo = False):
-        result = None
-        
-        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
-        port = addon.getSetting('port')
-        host = addon.getSetting('ipaddress')
-        server = host + ":" + port
-        
-        downloadUtils = DownloadUtils()
-        userid = downloadUtils.getUserId()        
-        
-        if fullinfo:
-            url = server + '/mediabrowser/Users/' + userid + '/items?ParentId=' + id + '&SortBy=SortName&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Movie&format=json&ImageTypeLimit=1'
-        else:
-            url = server + '/mediabrowser/Users/' + userid + '/items?ParentId=' + id + '&SortBy=SortName&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Movie&format=json&ImageTypeLimit=1'
-        
-        jsonData = downloadUtils.downloadUrl(url, suppress=True, popup=0)
-        if jsonData != None and jsonData != "":
-            result = json.loads(jsonData)
-            if(result.has_key('Items')):
-                result = result['Items']
-
-        return result
-    
-    def getTVShows(self, fullinfo = False):
-        result = None
-        
-        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
-        port = addon.getSetting('port')
-        host = addon.getSetting('ipaddress')
-        server = host + ":" + port
-        
-        downloadUtils = DownloadUtils()
-        userid = downloadUtils.getUserId()   
-        
-        if fullinfo:
-            url = server + '/mediabrowser/Users/' + userid + '/Items?&SortBy=SortName&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Series&format=json&ImageTypeLimit=1'
-        else:
-            url = server + '/mediabrowser/Users/' + userid + '/Items?&SortBy=SortName&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Series&format=json&ImageTypeLimit=1'
-        
-        jsonData = downloadUtils.downloadUrl(url, suppress=True, popup=0)
-        if jsonData != None and jsonData != "":
-            result = json.loads(jsonData)
-            if(result.has_key('Items')):
-                result = result['Items']
-
-        return result
-    
-    def getEpisodes(self, showId, fullinfo = False):
-        result = None
-        
-        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
-        port = addon.getSetting('port')
-        host = addon.getSetting('ipaddress')
-        server = host + ":" + port
-        
-        downloadUtils = DownloadUtils()
-        userid = downloadUtils.getUserId()   
-        
-        if fullinfo:
-            url = server + '/mediabrowser/Users/' + userid + '/Items?ParentId=' + showId + '&IsVirtualUnaired=false&IsMissing=False&SortBy=SortName&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1'
-        else:
-            url = server + '/mediabrowser/Users/' + userid + '/Items?ParentId=' + showId + '&IsVirtualUnaired=false&IsMissing=False&SortBy=SortName&Fields=Name,SortName,CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1'
-        
-        jsonData = downloadUtils.downloadUrl(url, suppress=True, popup=0)
-        
-        if jsonData != None and jsonData != "":
-            result = json.loads(jsonData)
-            if(result.has_key('Items')):
-                result = result['Items']
-        return result
-    
     def updatePlayCountFromKodi(self, id, playcount=0):
         #when user marks item watched from kodi interface update this to MB3
         
@@ -1146,47 +1075,7 @@ class LibrarySync():
                                 episode = item
 
         return episode
-
     
-    def getCollections(self, type):
-        #Build a list of the user views
-        userid = DownloadUtils().getUserId()  
-        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
-        port = addon.getSetting('port')
-        host = addon.getSetting('ipaddress')
-        server = host + ":" + port
-        
-        viewsUrl = server + "/mediabrowser/Users/" + userid + "/Views?format=json&ImageTypeLimit=1"
-        jsonData = DownloadUtils().downloadUrl(viewsUrl, suppress=True, popup=0 )
-        
-        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'
-                    jsonData = DownloadUtils().downloadUrl(newViewsUrl, suppress=True, popup=0 )
-                    if(jsonData != ""):
-                        newViews = json.loads(jsonData)
-                        newViews = newViews.get("Items")
-                        for newView in newViews:
-                            # There are multiple nodes in here like 'Latest', 'NextUp' - below we grab the full node.
-                            if newView.get("CollectionType") == "MovieMovies" or newView.get("CollectionType") == "TvShowSeries":
-                                view=newView
-                if(view.get("ChildCount") != 0):
-                    Name =(view.get("Name")).encode('utf-8')
-                    
-                total = str(view.get("ChildCount"))
-                type = view.get("CollectionType")
-                if type == None:
-                    type = "None" # User may not have declared the type
-                if type == type:
-                    collections.append( {'title'      : Name,
-                            'type'           : type,
-                            'id'             : view.get("Id")})
-        return collections
-        
     def ShouldStop(self):
         if(xbmc.Player().isPlaying() or xbmc.abortRequested):
             return True
diff --git a/resources/lib/ReadEmbyDB.py b/resources/lib/ReadEmbyDB.py
new file mode 100644
index 00000000..ba8bbb8a
--- /dev/null
+++ b/resources/lib/ReadEmbyDB.py
@@ -0,0 +1,125 @@
+#################################################################################################
+# ReadEmbyDB
+#################################################################################################
+
+import xbmc
+import xbmcgui
+import xbmcaddon
+import json
+
+from DownloadUtils import DownloadUtils
+
+addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
+
+class ReadEmbyDB():   
+    def getMovies(self, id, fullinfo = False):
+        result = None
+        
+        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
+        port = addon.getSetting('port')
+        host = addon.getSetting('ipaddress')
+        server = host + ":" + port
+        
+        downloadUtils = DownloadUtils()
+        userid = downloadUtils.getUserId()        
+        
+        if fullinfo:
+            url = server + '/mediabrowser/Users/' + userid + '/items?ParentId=' + id + '&SortBy=SortName&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Movie&format=json&ImageTypeLimit=1'
+        else:
+            url = server + '/mediabrowser/Users/' + userid + '/items?ParentId=' + id + '&SortBy=SortName&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Movie&format=json&ImageTypeLimit=1'
+        
+        jsonData = downloadUtils.downloadUrl(url, suppress=True, popup=0)
+        if jsonData != None and jsonData != "":
+            result = json.loads(jsonData)
+            if(result.has_key('Items')):
+                result = result['Items']
+
+        return result
+    
+    def getTVShows(self, fullinfo = False):
+        result = None
+        
+        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
+        port = addon.getSetting('port')
+        host = addon.getSetting('ipaddress')
+        server = host + ":" + port
+        
+        downloadUtils = DownloadUtils()
+        userid = downloadUtils.getUserId()   
+        
+        if fullinfo:
+            url = server + '/mediabrowser/Users/' + userid + '/Items?&SortBy=SortName&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Series&format=json&ImageTypeLimit=1'
+        else:
+            url = server + '/mediabrowser/Users/' + userid + '/Items?&SortBy=SortName&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Series&format=json&ImageTypeLimit=1'
+        
+        jsonData = downloadUtils.downloadUrl(url, suppress=True, popup=0)
+        if jsonData != None and jsonData != "":
+            result = json.loads(jsonData)
+            if(result.has_key('Items')):
+                result = result['Items']
+
+        return result
+    
+    def getEpisodes(self, showId, fullinfo = False):
+        result = None
+        
+        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
+        port = addon.getSetting('port')
+        host = addon.getSetting('ipaddress')
+        server = host + ":" + port
+        
+        downloadUtils = DownloadUtils()
+        userid = downloadUtils.getUserId()   
+        
+        if fullinfo:
+            url = server + '/mediabrowser/Users/' + userid + '/Items?ParentId=' + showId + '&IsVirtualUnaired=false&IsMissing=False&SortBy=SortName&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1'
+        else:
+            url = server + '/mediabrowser/Users/' + userid + '/Items?ParentId=' + showId + '&IsVirtualUnaired=false&IsMissing=False&SortBy=SortName&Fields=Name,SortName,CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1'
+        
+        jsonData = downloadUtils.downloadUrl(url, suppress=True, popup=0)
+        
+        if jsonData != None and jsonData != "":
+            result = json.loads(jsonData)
+            if(result.has_key('Items')):
+                result = result['Items']
+        return result
+    
+    def getCollections(self, type):
+        #Build a list of the user views
+        userid = DownloadUtils().getUserId()  
+        addon = xbmcaddon.Addon(id='plugin.video.mb3sync')
+        port = addon.getSetting('port')
+        host = addon.getSetting('ipaddress')
+        server = host + ":" + port
+        
+        viewsUrl = server + "/mediabrowser/Users/" + userid + "/Views?format=json&ImageTypeLimit=1"
+        jsonData = DownloadUtils().downloadUrl(viewsUrl, suppress=True, popup=0 )
+        
+        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'
+                    jsonData = DownloadUtils().downloadUrl(newViewsUrl, suppress=True, popup=0 )
+                    if(jsonData != ""):
+                        newViews = json.loads(jsonData)
+                        newViews = newViews.get("Items")
+                        for newView in newViews:
+                            # There are multiple nodes in here like 'Latest', 'NextUp' - below we grab the full node.
+                            if newView.get("CollectionType") == "MovieMovies" or newView.get("CollectionType") == "TvShowSeries":
+                                view=newView
+                if(view.get("ChildCount") != 0):
+                    Name =(view.get("Name")).encode('utf-8')
+                    
+                total = str(view.get("ChildCount"))
+                type = view.get("CollectionType")
+                if type == None:
+                    type = "None" # User may not have declared the type
+                if type == type:
+                    collections.append( {'title'      : Name,
+                            'type'           : type,
+                            'id'             : view.get("Id")})
+        return collections
+