moved to three maven modules
made constructor public
an implementation, driven with TDD and mocking
cleaned up exercise
fixed maven warnings