Add command interfaces

Adding some interfaces for commands.

I'm open for suggestions on this pull request.