 
   defp resp?(pdu), do: Pdu.command_id(pdu) > 0x80000000
 
-  def do_handle_pdu(pdu, st) do
+  defp do_handle_pdu(pdu, st) do
     new_module_state = st.module.handle_pdu(pdu, st.module_state)
     new_timers = SMPPTimers.handle_peer_transaction(st.timers, st.time)
     {:reply, :ok, %ESME{ st | module_state: new_module_state, timers: new_timers }}
   end
 
-  def do_handle_resp(pdu, st) do
+  defp do_handle_resp(pdu, st) do
     sequence_number = Pdu.sequence_number(pdu)
     new_timers = SMPPTimers.handle_peer_action(st.timers, st.time)
     new_st = %ESME{ st | timers: new_timers }

    end
  end

  def do_handle_resp_for_pdu(pdu, original_pdu, st) do
    new_module_state = st.module.handle_resp(pdu, original_pdu, st.module_state)
    new_st = %ESME{ st | module_state: new_module_state }
    case bind_resp?(pdu) do

    GenServer.call(esme, {:handle_send_pdu_result, pdu, send_pdu_result})
  end

  # GenServer callbacks

  def init([host, port, mod_with_args, transport, timeout, esme_opts]) do
    esme = self
    handler = fn(ref, _socket, _transport, session) ->
