implement custom language for handling user entered input commands such as joining a channel