Break apart server/router/client to facilitate custom routers.