nearly sorted. pass std::pair not Properties::ptr.