changed a lot of methods to final and got rid of the variables in the subclasses.