Refactoring, Part I