http://www.refactoring.com/catalog/moveClass.html MoveClass is supposedly one of the simplest refactorings, but it's not as trivial as it looks. Even the most sophisticated version control systems have trouble keeping the histories straight after MoveClass has been applied to different places in different branches. You don't always remember to delete all the compiled copies of the old file. You don't always catch all the static references to the old class name. MoveClass means a lot of work, a lot of risk, and not much gain. But sometimes you have to do it anyway.