baisc socket.io functionality