Refactored update diagonals