refactoring: Collector