canonical binning and range defining functions