refactored the subscribing into a WSSubscription type, and a bit more generic functions used by the different packages. this way the various packages will be responsible for exactly how you subscribe to their updates.