update canonical