       (.withLoadBalancingPolicy builder load-balancing-policy))
     (.build builder)))
 
-(defn ^SessionManager connect
+(defn ^Session connect
   "Connects to the Cassandra cluster. Use `build` function to build cluster with all required options."
   ([^Cluster cluster]
      (flush-prepared-statement-cache!)

            [clojurewerkz.cassaforte.conversion :as conv]
            [qbits.hayt.cql :as cql]
            [clojurewerkz.cassaforte.query :as query])
  (:import [com.datastax.driver.core Statement ResultSet ResultSetFuture Host SessionManager Cluster
            Cluster$Builder SimpleStatement PreparedStatement HostDistance PoolingOptions
            ConsistencyLevel]
           [com.google.common.util.concurrent Futures FutureCallback]

       explicitly, because `execute` is considered to be a low-level function."
  [& args]

  (let [[session query & {:keys [prepared]}] (if (instance? Session (first args))
                                               args
                                               (cons *default-session* args))
        ^Statement statement (if prepared
