code review and clean up
dependencies update; build system will check code using PMD
initial import