Updated ClientFactory to take both a destination (server) and an origin (client)