reduced the complexity of unselect
since selected objects don’t need random access they now reside in a hash map
replaced the selected flag of subobjects with a counter of selected objects