more refactoring...