add support for sub commands