Added PriorityStack and extracted AbstractDataCollection