change internal representation of ComponentCollection from HashSet to List

this allows duplicates within the collection