diff --git a/library/Potoki/Error/Hasql.hs b/library/Potoki/Error/Hasql.hs
deleted file mode 100644
--- a/library/Potoki/Error/Hasql.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-{-| Hasql errors interpretation -}
-module Potoki.Error.Hasql
-where
-
-import           Potoki.Prelude
-import           Potoki.Error.Types
-import qualified Hasql.Session            as A
-import qualified Hasql.Connection         as C
-
-
-connectionError :: C.ConnectionError -> Error
-connectionError details =
-  ConnectionError (maybe "" lenientUtf8ByteStringText details)
-
-sessionError :: A.Error -> Error
-sessionError =
-  \ case
-    A.ClientError details ->
-      ConnectionError (maybe "" lenientUtf8ByteStringText details)
-    A.ResultError details ->
-      InteractionError ((stringText . show) details)
diff --git a/library/Potoki/Error/Instances.hs b/library/Potoki/Error/Instances.hs
deleted file mode 100644
--- a/library/Potoki/Error/Instances.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Potoki.Error.Instances
-where
-
-import Potoki.Prelude
-import Potoki.Error.Types
-
-
-deriving instance Show Error
diff --git a/library/Potoki/Error/Types.hs b/library/Potoki/Error/Types.hs
deleted file mode 100644
--- a/library/Potoki/Error/Types.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Potoki.Error.Types
-where
-
-import Potoki.Prelude
-
-
-{-| Error, which can be produced during interaction with the Requests database.
-    Comes packed with the detailed description of the problems. -}
-data Error =
-  {-| Connection error. Can be interpreted as a signal for reconnecting. -}
-  ConnectionError Text |
-  {-| Some form of an interaction error.
-      Can happen for many reasons related to improper suppositions about the state of the database. -}
-  InteractionError Text
diff --git a/library/Potoki/Hasql/Consume.hs b/library/Potoki/Hasql/Consume.hs
--- a/library/Potoki/Hasql/Consume.hs
+++ b/library/Potoki/Hasql/Consume.hs
@@ -1,16 +1,16 @@
 module Potoki.Hasql.Consume
 where
 
-import           Potoki.Prelude   
-import qualified Hasql.Connection        as B
-import qualified Hasql.Query             as E
-import qualified Hasql.Session           as D
-import qualified Potoki.Consume          as O
+import           Potoki.Hasql.Prelude   
+import qualified Hasql.Connection         as B
+import qualified Hasql.Query              as E
+import qualified Hasql.Session            as D
+import qualified Potoki.Consume           as O
 import           Potoki.Core.Consume
-import qualified Potoki.Core.Fetch       as C
-import qualified Potoki.Transform        as F
-import qualified Potoki.Error.Hasql as G
-import           Potoki.Error.Types  
+import qualified Potoki.Core.Fetch        as C
+import qualified Potoki.Transform         as F
+import qualified Potoki.Hasql.Error.Hasql as G
+import           Potoki.Hasql.Error.Types  
 
 
 executeBatchQuery :: E.Query (Vector params) () -> Int -> B.Settings -> Consume params (Either Error ())
diff --git a/library/Potoki/Hasql/Error.hs b/library/Potoki/Hasql/Error.hs
new file mode 100644
--- /dev/null
+++ b/library/Potoki/Hasql/Error.hs
@@ -0,0 +1,12 @@
+module Potoki.Hasql.Error
+(
+    Error (..),
+    module Potoki.Hasql.Error.Instances,
+    connectionError,
+    sessionError
+)
+where
+
+import Potoki.Hasql.Error.Hasql
+import Potoki.Hasql.Error.Instances
+import Potoki.Hasql.Error.Types
diff --git a/library/Potoki/Hasql/Error/Hasql.hs b/library/Potoki/Hasql/Error/Hasql.hs
new file mode 100644
--- /dev/null
+++ b/library/Potoki/Hasql/Error/Hasql.hs
@@ -0,0 +1,21 @@
+{-| Hasql errors interpretation -}
+module Potoki.Hasql.Error.Hasql
+where
+
+import           Potoki.Hasql.Prelude
+import           Potoki.Hasql.Error.Types
+import qualified Hasql.Session            as A
+import qualified Hasql.Connection         as C
+
+
+connectionError :: C.ConnectionError -> Error
+connectionError details =
+  ConnectionError (maybe "" lenientUtf8ByteStringText details)
+
+sessionError :: A.Error -> Error
+sessionError =
+  \ case
+    A.ClientError details ->
+      ConnectionError (maybe "" lenientUtf8ByteStringText details)
+    A.ResultError details ->
+      InteractionError ((stringText . show) details)
diff --git a/library/Potoki/Hasql/Error/Instances.hs b/library/Potoki/Hasql/Error/Instances.hs
new file mode 100644
--- /dev/null
+++ b/library/Potoki/Hasql/Error/Instances.hs
@@ -0,0 +1,8 @@
+module Potoki.Hasql.Error.Instances
+where
+
+import Potoki.Hasql.Prelude
+import Potoki.Hasql.Error.Types
+
+
+deriving instance Show Error
diff --git a/library/Potoki/Hasql/Error/Types.hs b/library/Potoki/Hasql/Error/Types.hs
new file mode 100644
--- /dev/null
+++ b/library/Potoki/Hasql/Error/Types.hs
@@ -0,0 +1,14 @@
+module Potoki.Hasql.Error.Types
+where
+
+import Potoki.Hasql.Prelude
+
+
+{-| Error, which can be produced during interaction with the Requests database.
+    Comes packed with the detailed description of the problems. -}
+data Error =
+  {-| Connection error. Can be interpreted as a signal for reconnecting. -}
+  ConnectionError Text |
+  {-| Some form of an interaction error.
+      Can happen for many reasons related to improper suppositions about the state of the database. -}
+  InteractionError Text
diff --git a/library/Potoki/Hasql/Prelude.hs b/library/Potoki/Hasql/Prelude.hs
new file mode 100644
--- /dev/null
+++ b/library/Potoki/Hasql/Prelude.hs
@@ -0,0 +1,28 @@
+module Potoki.Hasql.Prelude
+(
+  module Exports,
+  stringText,
+  lenientUtf8ByteStringText,
+)
+where
+
+import           Prelude                  as Exports
+import           Control.Monad            as Exports (join)
+import           Data.Profunctor          as Exports (right')
+import           Data.IORef               as Exports
+import           Data.Vector              as Exports (Vector(..))
+import           Data.Text                as Exports (Text(..))
+import           Control.Arrow            as Exports ((>>>))
+import qualified Data.Text                as A
+import qualified Data.Text.Encoding       as A
+import qualified Data.Text.Encoding.Error as A
+import qualified Data.ByteString          as B
+
+
+stringText :: String -> A.Text
+stringText =
+  A.pack
+
+lenientUtf8ByteStringText :: B.ByteString -> A.Text
+lenientUtf8ByteStringText =
+  A.decodeUtf8With A.lenientDecode
diff --git a/library/Potoki/Hasql/Produce.hs b/library/Potoki/Hasql/Produce.hs
--- a/library/Potoki/Hasql/Produce.hs
+++ b/library/Potoki/Hasql/Produce.hs
@@ -3,23 +3,23 @@
   statefulSession
 ) where
 
-import           Potoki.Prelude
-import qualified Hasql.Connection        as F
-import qualified Hasql.Session           as G
-import qualified Potoki.Core.Fetch       as A
+import           Potoki.Hasql.Prelude
+import qualified Data.Vector               as D
+import qualified Hasql.Connection          as F
+import qualified Hasql.Session             as G
+import qualified Potoki.Core.Fetch         as A
 import           Potoki.Core.Produce
-import qualified Potoki.Produce          as K
-import qualified Potoki.Transform        as J
-import qualified Potoki.Error.Hasql as I
-import           Potoki.Error.Types
+import qualified Potoki.Produce            as K
+import qualified Potoki.Transform          as J
+import qualified Potoki.Hasql.Error.Hasql  as I
+import           Potoki.Hasql.Error.Types
 
 
-vectorStatefulSession :: (state -> G.Session (Vector a, state)) -> state -> F.Settings -> Produce (Either Error a)
-vectorStatefulSession vectorSession initialState connectionSettings =
+vectorStatefulSession :: (state -> G.Session (Vector a, state)) -> state -> F.Settings -> Int -> Produce (Either Error a)
+vectorStatefulSession vectorSession initialState connectionConfig buffering =
   K.transform
-    (right' J.vector)
-    (statefulSession vectorSession initialState connectionSettings)
-
+    (right' (J.takeWhile (not . D.null) >>> J.vector >>> J.bufferize buffering))
+    (statefulSession vectorSession initialState connectionConfig)
 
 statefulSession :: (state -> G.Session (a, state)) -> state -> F.Settings -> Produce (Either Error a)
 statefulSession session initialState =
@@ -33,7 +33,6 @@
         Right (result, newState) -> do
           writeIORef stateRef newState
           return (just (Right result))
-
 
 havingConnection :: (F.Connection -> IO (A.Fetch (Either Error a))) -> F.Settings -> Produce (Either Error a)
 havingConnection cont connectionSettings =
diff --git a/library/Potoki/Prelude.hs b/library/Potoki/Prelude.hs
deleted file mode 100644
--- a/library/Potoki/Prelude.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-module Potoki.Prelude
-(
-  module Exports,
-  stringText,
-  lenientUtf8ByteStringText,
-)
-where
-
-import           Prelude                  as Exports
-import           Control.Monad            as Exports (join)
-import           Data.Profunctor          as Exports (right')
-import           Data.IORef               as Exports
-import           Data.Vector              as Exports (Vector(..))
-import           Data.Text                as Exports (Text(..))
-import qualified Data.Text                as A
-import qualified Data.Text.Encoding       as A
-import qualified Data.Text.Encoding.Error as A
-import qualified Data.ByteString          as B
-
-
-stringText :: String -> A.Text
-stringText =
-  A.pack
-
-lenientUtf8ByteStringText :: B.ByteString -> A.Text
-lenientUtf8ByteStringText =
-  A.decodeUtf8With A.lenientDecode
diff --git a/potoki-hasql.cabal b/potoki-hasql.cabal
--- a/potoki-hasql.cabal
+++ b/potoki-hasql.cabal
@@ -1,7 +1,7 @@
 name:
   potoki-hasql
 version:
-  1.1.0.1
+  1.2
 synopsis:
   Integration of "potoki" and "hasql".
 description:
@@ -25,7 +25,7 @@
 build-type:
   Simple
 cabal-version:
-  >=1.24
+  >= 1.24
 
 source-repository head
   type:
@@ -43,11 +43,12 @@
   exposed-modules:
     Potoki.Hasql.Consume
     Potoki.Hasql.Produce
+    Potoki.Hasql.Error
   other-modules:
-    Potoki.Error.Hasql
-    Potoki.Error.Instances
-    Potoki.Error.Types
-    Potoki.Prelude
+    Potoki.Hasql.Prelude
+    Potoki.Hasql.Error.Hasql
+    Potoki.Hasql.Error.Instances
+    Potoki.Hasql.Error.Types
   build-depends:
     hasql >= 1.1.1 && < 1.2,
     potoki >= 0.11.1 && < 0.12,
