mostly functional heatmap, now we just need to get the rating algorithm working and tune the JS accordingly