Over four years after multiple women were sexually assaulted by the same man in Manhattan, police say the perpetrator has been caught.

Ra’Shaun Kelley, 35, a business and commercial attorney, stood before a judge in Manhattan Criminal Court Saturday night on charges of three counts each of sex abuse and burglary as a sexually motivated felony. Police allege that on three occasions in December 2014 and January 2015, Kelley followed women into their buildings in the East Village, the Lower East Side, and Harlem, and sexually abused them.

According to the police, in the early morning hours of December 16th, 2014, Kelley followed a 19-year-old woman into her East Village building’s elevator, where he pressed his body against her and groped her while trying to kiss her.

The next day, he allegedly followed a 20-year-old woman into her Harlem building, where he covered her mouth, told her not to scream and rubbed her buttocks.

Then, early on the morning of January 14th, 2015, Kelley allegedly pushed a 31-year-old woman into the lobby of her Lower East Side building, again covering her mouth. Prosecutors say he then put his hand down the front of her pants before pulling down her leggings and exposing her underwear.

Assistant District Attorney Raffaela Belizaire said in court on Saturday that Kelley “was a one-man sex assault spree.” But when she asserted that the women had picked Kelley out of a lineup, defense attorney Christopher Carrion, a classmate of Kelley’s at New York Law School, countered the veracity of the identification, telling the judge it had been “very vague,” with both witnesses unsure if he was their attacker.

“To say it was shaky is being generous,” Carrion said of the lineups. Kelley, wearing jeans, a gray T-shirt and a black hoodie, rolled his eyes as the charges were read.

Years after the alleged assaults, it was a tip that ultimately led Warrants Squad officers to the Canarsie native. Police say they were then able to identify Kelley based on surveillance videos, victim statements, and a DNA sample.

Carrion said Kelley had strong ties in the community and pointed out Kelley’s father in the courtroom, describing him as a high-ranking member of the Department of Sanitation. He also said Kelley lived with his brother, an NYPD officer. Avvo, an online legal services provider, describes Kelley as a litigator focusing on commercial and securities transactions. Prior to opening his own firm, he worked in the legal departments of JP Morgan, Credit Suisse and MF Global.

Criminal Court Judge Althea Drysdale set Kelley’s bail at $200,000. He is due back in court on Thursday to learn if a grand jury has indicted him.