diff --git a/routing/__init__.py b/routing/__init__.py
index 528b811..dfac10f 100644
--- a/routing/__init__.py
+++ b/routing/__init__.py
@@ -17,7 +17,7 @@ class Faucet(metaclass=ABCMeta):
         raise NotImplementedError
 
 
-class PipeFaucet(Faucet):
+class RawPipeFaucet(Faucet):
 
     def __init__(self, pipe_fd):
         fl = fcntl.fcntl(pipe_fd, fcntl.F_GETFL)
@@ -30,7 +30,15 @@ class PipeFaucet(Faucet):
         except OSError as ex:
             raise EndpointClosedException(ex)
         if line:
-            return json.loads(line.decode())
+            return line.decode()
+
+
+class PipeFaucet(RawPipeFaucet):
+
+    def read(self):
+        line = super().read()
+        if line:
+            return json.loads(line)