we don't need get_canonical