The Logging / Pub/Sub / Datastore packages all have custom API objects that do that actual communication with the server. Now Connection is just a container for some members that those API objects require. Should we remove these base classes and make any shared behavior from the core Connection into helper functions instead of a shared base?