Generic -> Make generic accept other commands and states.  Should be more useful and generic.