object oriented refactoring
b) finished