Ten Rules to Refactor Code