canonical handling update