add diagonal operations