Restructuring application. Add in ability to override commands. Minor
refactoring