Refactoring Abstract classes.