part of the refactoring