added diagonal product