Lots of changes.
connection is now exposed as Connection.
handling half reads properly in parser (was closing socket too soon)