Refactored to make unit testable.
Tweaked styling
Tweaked boiler plate stuff
Refactored to support unit testing.
Added unit tests
Remove unnecessary file
Tweak layout.