big refactoring.
add user domain object.
refactor and simplify classes and test in core module.
fix percent discount logic.
refactoring again, add action test.
add mockito artifact and skeleton to full process tests.
return build process to green zone.
clean code: javadoc.