treat diagonal case seperately.