   def handle_info({:tick, time}, st) do
     do_handle_tick(time, st)
   end
+
+  # Private functions
 
   defp start_session(handler, host, port, transport, timeout) do
     case transport.connect(host, port, timeout) do

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

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

    end
  end

  defp 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
