Maybe all irrelevant at this point, but see Design+Refactoring