working on new socket model with generic subscribable, and generic server api, unfinished