refactored to a collection