add support for manually triggering commands and listening to command events