different refactorings