Merge pull request #76 from alfh/fix_code_review_changes

Code review changes
Code refactor: Put some classes and interfaces into their own java files.
Classes and interfaces referenced from different packages could be
better placed in their own files, instead of being burried inside
other classes.