heavy refactoring, collections