refactored tests, renamed Collector to Gatherer, added Collector