working modifiable priority queue - requires more testing