Refactoring: Improving the Design of Existing Code by William Opdyke | Menrva Books