diff --git a/src/snek/webdav.py b/src/snek/webdav.py
index 0068fcc..26dce2f 100755
--- a/src/snek/webdav.py
+++ b/src/snek/webdav.py
@@ -15,11 +15,21 @@ import aiohttp
 import aiohttp.web
 from lxml import etree
 
+@aiohttp.web.middleware
+async def debug_middleware(request, handler):
+    print(request.method, request.path, request.headers)
+    return await handler(request)
+
 
 class WebdavApplication(aiohttp.web.Application):
     def __init__(self, parent, *args, **kwargs):
-        super().__init__(*args, **kwargs)
+        middlewares = [debug_middleware]
+
+        super().__init__(middlewares=middlewares, *args, **kwargs)
         self.locks = {}
+        
+        self.relative_url = "/webdav"
+        print(self.router)
 
         self.router.add_route("OPTIONS", "/{filename:.*}", self.handle_options)
         self.router.add_route("GET", "/{filename:.*}", self.handle_get)
@@ -30,8 +40,8 @@ class WebdavApplication(aiohttp.web.Application):
         self.router.add_route("COPY", "/{filename:.*}", self.handle_copy)
         self.router.add_route("PROPFIND", "/{filename:.*}", self.handle_propfind)
         self.router.add_route("PROPPATCH", "/{filename:.*}", self.handle_proppatch)
-        # self.router.add_route("LOCK", "/{filename:.*}", self.handle_lock)
-        # self.router.add_route("UNLOCK", "/{filename:.*}", self.handle_unlock)
+        self.router.add_route("LOCK", "/{filename:.*}", self.handle_lock)
+        self.router.add_route("UNLOCK", "/{filename:.*}", self.handle_unlock)
         self.parent = parent
 
     @property
@@ -46,11 +56,11 @@ class WebdavApplication(aiohttp.web.Application):
         # session = request.session
         # if session.get('uid'):
         #    request['user'] = await self.services.user.get(uid=session['uid'])
-        #    try:
-        #        request['home'] = await self.services.user.get_home_folder(user_uid=request['user']['uid'])
-        #    except:
-        #        pass
-        #    return request['user']
+        #try:
+        #    request['home'] = await self.services.user.get_home_folder(user_uid=request['user']['uid'])
+        #except:
+        #    pass
+        #return request['user']
 
         auth_header = request.headers.get("Authorization", "")
         if not auth_header.startswith("Basic "):
@@ -66,6 +76,7 @@ class WebdavApplication(aiohttp.web.Application):
                 request["user"]["uid"]
             )
         except Exception as ex:
+            print("GRRRRRRRRRR")
             print(ex)
             pass
         return request["user"]
@@ -98,6 +109,7 @@ class WebdavApplication(aiohttp.web.Application):
                 status=401, headers={"WWW-Authenticate": 'Basic realm="WebDAV"'}
             )
         file_path = request["home"] / request.match_info["filename"]
+        print("WRITETO_", file_path)
         file_path.parent.mkdir(parents=True, exist_ok=True)
         async with aiofiles.open(file_path, "wb") as f:
             while chunk := await request.content.read(1024):
@@ -195,9 +207,11 @@ class WebdavApplication(aiohttp.web.Application):
         abs_path = pathlib.Path(full_path)
         relative_path = str(full_path.relative_to(request["home"]))
 
-        href_path = f"{relative_path}".strip("/")
-        # href_path = href_path.replace("./","/")
+        
+        href_path = f"{self.relative_url}/{relative_path}".strip(".")
+        href_path = href_path.replace("./","/")
         href_path = href_path.replace("//", "/")
+            
         response = etree.SubElement(response_xml, "{DAV:}response")
         href = etree.SubElement(response, "{DAV:}href")
         href.text = href_path
@@ -240,7 +254,7 @@ class WebdavApplication(aiohttp.web.Application):
         etree.SubElement(lock_type_2, "{DAV:}write")
         etree.SubElement(propstat, "{DAV:}status").text = "HTTP/1.1 200 OK"
 
-        if abs_path.is_dir() and depth != -1:
+        if abs_path.is_dir():
             for item in abs_path.iterdir():
                 await self.create_node(request, response_xml, item, depth - 1)
 
@@ -255,7 +269,11 @@ class WebdavApplication(aiohttp.web.Application):
             depth = int(request.headers.get("Depth", "0"))
         except ValueError:
             pass
+        
+        print(request)
+
         requested_path = request.match_info.get("filename", "")
+        
         abs_path = request["home"] / requested_path
         if not abs_path.exists():
             return aiohttp.web.Response(status=404, text="Directory not found")
@@ -267,6 +285,7 @@ class WebdavApplication(aiohttp.web.Application):
         xml_output = etree.tostring(
             response_xml, encoding="utf-8", xml_declaration=True
         ).decode()
+        print(xml_output)
         return aiohttp.web.Response(
             status=207, text=xml_output, content_type="application/xml"
         )