faster diagonal h,o