simple priority q impl