added JML, getDiagonalStartPoint instead of direction specific