Changed the class to an abstract class
Modified the classes directly. Will have to find a way to ignore these
Adding in the JUnit tests and some modifications to the existing structure.