some more refactoring goes