gitignore vim swap files.
Using (*Client).Send() instead of Transmit()/Receive()

- minor optimizations by doing tail call.