@tomspilman this is where you are concerned about performance? This is the only reference search. How fast is the getHashCode on OALSoundBuffer? while the HashSet is O(logN) for this search, how much does it cost to compute the hash code? the O(n) linear search (as you point out) for small sets will outperform the HashSet lookup. The only reason I need List() is for the reverse iteration. if there was a way to do reverse iteration on the hashset so that I can remove items from the list inline with the iteration in update() then we can use HashSet (or whatever variant that offers reverse iteration)....