refactor: socketio