diff --git a/library/Strelka/WAI.hs b/library/Strelka/WAI.hs
--- a/library/Strelka/WAI.hs
+++ b/library/Strelka/WAI.hs
@@ -8,10 +8,10 @@
 import BasePrelude
 import Data.Text (Text)
 import System.IO (stderr)
-import qualified Strelka.RequestParser as A
-import qualified Strelka.ResponseBuilder as B
-import qualified Strelka.Executor as C
-import qualified Strelka.Model as F
+import qualified Strelka.Core.RequestParser as A
+import qualified Strelka.Core.ResponseBuilder as B
+import qualified Strelka.Core.Executor as C
+import qualified Strelka.Core.Model as F
 import qualified Network.Wai as D
 import qualified Network.Wai.Handler.Warp as E
 import qualified Network.HTTP.Types as G
@@ -21,10 +21,14 @@
 import qualified Data.Text.IO as K
 
 
+-- |
+-- Given a port number, a base monad executor and a route specification, starts the Warp server.
 strelkaServer :: Monad m => Int -> (forall a. m a -> IO (Either Text a)) -> A.RequestParser m B.ResponseBuilder -> IO ()
 strelkaServer port runBase route =
   E.run port (strelkaApplication runBase route)
 
+-- |
+-- Given a base monad executor and a route specification, produces a WAI application.
 strelkaApplication :: Monad m => (forall a. m a -> IO (Either Text a)) -> A.RequestParser m B.ResponseBuilder -> D.Application
 strelkaApplication runBase route =
   \request responseHandler ->
@@ -34,9 +38,12 @@
         Left msg ->
           do
             K.hPutStrLn stderr msg
-            responseHandler (waiResponse (B.run B.internalErrorStatus))
+            responseHandler (waiResponse internalErrorResponse)
         Right response ->
           responseHandler (waiResponse response)
+  where
+    internalErrorResponse =
+      F.Response (F.Status 500) [] (F.OutputStream (const (const (pure ()))))
 
 strelkaRequest :: D.Request -> F.Request
 strelkaRequest waiRequest =
@@ -45,7 +52,7 @@
     method =
       F.Method (H.foldCase (D.requestMethod waiRequest))
     path =
-      F.Path (D.rawPathInfo waiRequest)
+      fmap F.PathSegment (D.pathInfo waiRequest)
     query =
       J.fromList (map row (D.queryString waiRequest))
       where
diff --git a/strelka-wai.cabal b/strelka-wai.cabal
--- a/strelka-wai.cabal
+++ b/strelka-wai.cabal
@@ -1,7 +1,7 @@
 name:
   strelka-wai
 version:
-  0.4
+  1
 synopsis:
   WAI compatibility layer for "strelka"
 homepage:
@@ -45,11 +45,11 @@
     wai >= 3.2 && < 4,
     warp >= 3.2 && < 4,
     http-types >= 0.9 && < 0.10,
-    strelka == 0.4.*,
+    strelka-core == 0.1.*,
     -- 
     unordered-containers == 0.2.*,
     case-insensitive >= 1 && < 2,
     text == 1.*,
-    bytestring == 0.10.*,
+    bytestring >= 0.10.2 && < 0.11,
     base-prelude < 2,
     base < 5
