diff --git a/src/repdav/textgrid_dav_provider.py b/src/repdav/textgrid_dav_provider.py
index b13f8a679a732fc9ded6fedf8950fa0ddcb59c63..219ed7e6d215d12473db54dbbd7b9d873b735b8e 100644
--- a/src/repdav/textgrid_dav_provider.py
+++ b/src/repdav/textgrid_dav_provider.py
@@ -8,13 +8,12 @@ from pprint import pformat
 from tgclients.auth import TextgridAuth
 from tgclients.config import TextgridConfig
 from tgclients.crud import TextgridCRUD
+from tgclients.search import TextgridSearch
 from wsgidav.dav_provider import DAVCollection, DAVNonCollection, DAVProvider
 from wsgidav.util import join_uri, pop_path
 
 from repdav.stream_tools import FileLikeQueue
 
-from .tgapi import TextgridSearch
-
 _logger = logging.getLogger(__name__)
 
 
@@ -80,6 +79,8 @@ class TextgridProject(DAVCollection):
         _logger.debug("Called TextgridProject.__init__(self, %s, environ).", path)
         DAVCollection.__init__(self, path, environ)
         self._sid = environ["wsgidav.auth.user_name"]
+        self._tgconfig = TextgridConfig()
+        self._tgsearch = TextgridSearch(self._tgconfig.search)
 
     def create_empty_resource(self, name):
         pass
@@ -99,14 +100,22 @@ class TextgridProject(DAVCollection):
         # return names
         #
         # path resolution has to be rewritten before we can work with resource titles
-        resources = TextgridSearch().get_project_contents(
-            self._sid, self.path.split("/")[-1]
-        )
-        return resources.keys()
+        response = self._tgsearch.list_project_root(self.path.split("/")[-1], self._sid)
+        names = []
+        for result in response.result:
+            names.append(result.object_value.generic.generated.textgrid_uri.value)
+        return names
 
     def get_member(self, name):
         _logger.debug("Called TextgridProject.get_member(self, %s).", name)
-        info = TextgridSearch().info(self._sid, name)
+        response = self._tgsearch.info(name, self._sid)
+        info = {
+            name: {
+                "title": response.result[0].object_value.generic.provided.title,
+                "format": response.result[0].object_value.generic.provided.format,
+                "extent": response.result[0].object_value.generic.generated.extent,
+            }
+        }
         _logger.info("INFO: %s", info)
         if "aggregation" in info[name]["format"]:
             return TextgridAggregation(join_uri(self.path, name), self.environ, info)
@@ -161,6 +170,8 @@ class TextgridAggregation(DAVCollection):
         DAVCollection.__init__(self, path, environ)
         self._sid = environ["wsgidav.auth.user_name"]
         self._info = info
+        self._tgconfig = TextgridConfig()
+        self._tgsearch = TextgridSearch(self._tgconfig.search)
 
     def create_empty_resource(self, name):
         pass
@@ -173,15 +184,22 @@ class TextgridAggregation(DAVCollection):
 
     def get_member_names(self):
         _logger.debug("Called TextgridAggregation.get_member_names(self).")
-        resources = TextgridSearch().get_aggregation_contents(
-            self._sid, self.path.split("/")[-1]
-        )
-        # _logger.debug("RESOURCES: %s", resources)
-        return resources.keys()
+        response = self._tgsearch.list_aggregation(self.path.split("/")[-1], self._sid)
+        names = []
+        for result in response.result:
+            names.append(result.object_value.generic.generated.textgrid_uri.value)
+        return names
 
     def get_member(self, name):
         _logger.debug("Called TextgridAggregation.get_member(self, %s).", name)
-        info = TextgridSearch().info(self._sid, name)
+        response = self._tgsearch.info(name, self._sid)
+        info = {
+            name: {
+                "title": response.result[0].object_value.generic.provided.title,
+                "format": response.result[0].object_value.generic.provided.format,
+                "extent": response.result[0].object_value.generic.generated.extent,
+            }
+        }
         _logger.info("INFO: %s", info)
         if "aggregation" in info[name]["format"]:
             return TextgridAggregation(join_uri(self.path, name), self.environ, info)
@@ -260,7 +278,7 @@ class TextgridResource(DAVNonCollection):
         )
 
         queue = FileLikeQueue(int(self._size))
-        config = TextgridConfig("http://textgridlab.org/")
+        config = TextgridConfig()
         crud = TextgridCRUD(config.crud)
         metadata = crud.read_metadata(self.path.split("/")[-1], self._sid).content