First steps of cycling refactoring
Second steps of cycling refactoring
Third steps of cycling refactoring
Last steps of cycling refactoring