convenient ws structure based on sio