Organize packages and update Javadoc
Reduce visibility of methods that do not need to be public
Use a logger instead of System.out
Clarify parameter name