refactoring gatherer