major reorg to have client and server Transport be separate objects