Move transports into distinct files, basic work on TCP transport