simplifying domain models, code refactoring
adding java docs