beginning of quixotic object-oriented refactoring