Ported Heatmaps. Clustering on hold for now.