added ICommandListener takes priority over IChatListener