unified interface for commands