   def handle_call({:write_line, line}, _from, state) do
     # If fails, makes the cmd exit. And by failing call, quite probably caller too. (Client)
     if state.debug do
-      Logger.debug("CMD // #{state.cmd} // #{inspect self}> #{line}")
+      Logger.debug("CMD // #{Path.basename state.cmd} // #{inspect self}> #{line} #{inspect Port.info(state.port)}")
     end
     res = Port.command(state.port, line)
+
     {:reply, res, state}
   end
   def handle_call({:call, method, params}, from, state) do
     #Logger.debug("Call #{method}")
     RPC.Client.cast( state.client, method, params, fn res ->
-      #Logger.debug("Response for #{method}: #{inspect res}")
+      Logger.debug("Response for #{method}: #{inspect res}")
       GenServer.reply(from, res)
     end)
     {:noreply, state }

    line = to_string([state.line, line])

    if state.debug do
      Logger.debug("CMD // #{state.cmd} // #{inspect self}< #{line}")
    end

    case RPC.Client.parse_line(state.client, line) do

    cmdopts = cmdopts ++ [:stream, :line, :use_stdio, args: args]
    port = Port.open({:spawn_executable, cmd}, cmdopts)
    Port.connect(port, server)
    Logger.debug("Starting command #{cmd} at port")

    {:ok, client} = RPC.Client.start_link [
        writef: fn line ->
