Introducing Abstract Classes - Refactoring Toward Better Abstractions | OneNoughtOne