Additional testing and architecture added around Program class and InputHandler.