implemented join. needs to examine leave and switch
implemented all commands