refactoring + new transformations