it becomes Nichols Street and meets NY 259 in the center of the community. Outside of Spencerport, NY 31 becomes Spencerport Road as it heads eastward into the town of Gates. The route heads past residential neighborhoods to the north and mostly undeveloped land to the south as it enters the hamlet of Elmgrove, built up around NY 31's junction with NY 386. Not far to the east, NY 31 enters North Gates, a densely populated residential community near the northern town line of Gates. In the southeastern outskirts of the community, NY 31 intersects Lyell and Howard Roads at a junction that once served as the western terminus of NY 47. NY 31 continues east from here as Lyell Avenue, meeting NY 390 at an interchange immediately north of the route's larger interchange with I-490. Not far to the east is the Rochester city line, which NY 31 crosses upon traversing the Erie Canal once again. NY 31 follows Lyell Avenue through the city to West Broad Street, where it turns to follow Broad Street southeastward past Marina Auto Stadium. It heads onward toward a pair of overpasses, one carrying I-490 and another holding the CSX Transportation-owned Rochester Subdivision. NY 31 continues under both, following the former path of the Erie Canal southeast through the city to the eastern terminus of NY 33 at West Main Street. NY 31 follows West Main Street to the east, passing under I-490 once again before breaking from Main Street and occupying East Broad Street. The street proceeds to the east, passing through the commercial heart of the city. Just east of Exchange Boulevard, the northern terminus of NY 383, the route crosses the Genesee River on the Broad Street Aqueduct. East of the waterway, NY 31 follows East Broad Street to South Avenue, where it turns south for two blocks to a junction with Woodbury Boulevard. It turns east here, following Woodbury Boulevard for two blocks to Chestnut Street, at which point NY 31 turns southward to follow Chestnut Street. Westbound NY 31 in the area, however, follows one block of Woodbury Boulevard and two blocks of South Clinton Avenue to reach East Broad Street. At the Inner Loop, Chestnut Street becomes Monroe Avenue, the name NY 31 retains to Pittsford. Over this stretch, NY 31 maintains a constant southeasterly progression as it passes through southeastern Rochester and the town of Brighton.