modularize web socket handling