Issue #7 - Encapsulate commands
Merge branch 'develop' into feature/issue-7
Issue #7 - Replaced singletons with dependency injection