hamming no longer uses tim's functions