refactors Phase I