Completed Coding Challenge

The new features have been added and tested as described.  Code comments
has been added to aid in code clarity and understanding. A configuration
file has been implemented, which would - if all test cases were built
out - contain the various input parameters used in unit testing.