Refactoring to implement Template Pattern and increase code reuse a bit.
Merged master into handlerImpl branch.
Merged master into handlerImpl branch. Missed this one...
Refactoring to add command pattern.