Learning to refactor from the Refactoring book of Fowler.