             method (.getMethod msg)
             args (parse-string (.toStringUtf8 (.getArgs msg)))
             result (custom-handler service method args)]
-        (prn args)
         (when (zero? type)                ; sync call
           (.writeAndFlush ctx (.. (Rpc$Response/newBuilder) (setResult (ByteString/copyFromUtf8 (generate-string result))) build)))))
     (channelReadComplete [^ChannelHandlerContext ctx]

;; TODO fixed issue of non sharable
(defn ^ChannelHandler server-handler
  [custom-handler]
  (proxy [ChannelInboundHandlerAdapter ChannelHandler$Sharable] []
    (channelRead [^ChannelHandlerContext ctx ^Object msg]
      ;; (prn "Server received: " msg)
      (let [type (.getType msg)

      (reconnect ctx host port))
    (exceptionCaught [^ChannelHandlerContext ctx ^Throwable cause]
      (.printSTackTrace cause)
      (.close ctx))
    (isSharable [] true)))
