passes get_temp_change tests. Needs speedup.