add support for multiple command types