Refactoring : improving the design of existing code - Fowler, Martin 1963- (Addison-Wesley, 1999)