Refactoring: Improving the Design of Existing Code, 2/e Refactoring: Improving the Design of Existing Code, 2/e Martin Fowler