update cononical