lots of redundant code .. maybe pass a closure to build the collection to a generic method?