add heatmap functionality; handle missing data