refactoring, using standard collection instead of custom abstraction layer on top of it