more refactoring #1