Refactored class names and package locations to be more descriptive
Some class refactoring/javadoc additions