Refactored tests and created an Abstract test case. Also, refactored some of the module classes and improved some javadocs.