implement channel modes and messages properly