removed sorting; remove async assumption