Refactoring and good design