* Running a method based on the first argument supplied.
* Running a 'default' method when no arguments are supplied.
* Parsing of positional arguments based on method signature.
* Parsing of optional arguments based on method signature.
* Parsing of flags based on method signature.
* Printing of dynamically generated help screen based on the commands that had been set up.
* Printing of dynamically generated help screen for a particular command based on the method signature supplied to that command.