first cut at topN heap
topN in place