base for refactorings + tests