Refactoring: Improving the Design of Existing Code (Addison-wesley Object Technology Series) Refactoring: Improving the Design of Existing Code (Addison-wesley Object Technology Series)