added perpendicular method