cleanup
make WebSocketServer a trait