refactorings ... intermediate