Added a precondition for diagonal?