refactoring process