Huge amount of refactoring and adding of JavaDocs!