one more refactoring