added joinRoom()