A murderer admits to his crime, but his victim's mother—who is seeking custody of her grandson—fights on. 

For three years, Shaun Hardy of League City, Texas vigorously contested the charges that he stabbed and suffocated his ex-wife, Anne-Christine Johnson, then left her body to rot in his garage. But on Monday, in a courtroom packed with Johnson’s family and friends, Hardy admitted his guilt in return for a lighter sentence than he may have received at trial.

“Are you pleading guilty because you are, in fact, guilty?” Judge Patricia Grady asked Hardy, 35, as he stood before her in a green jumpsuit and handcuffs.

“Yes,” he answered. “I am guilty.”

Accepting the terms of a plea deal that Hardy struck last week with Galveston County prosecutors, Grady sentenced him to 30 years in prison on the murder charge and 20 on the tampering charge. The sentences will run concurrently, and Hardy will be eligible for parole in about 14 years.

The case had been scheduled for a jury trial in early December. Had the trial proceeded, Hardy could have been sentenced to a maximum of 99 years for murder and 20 years for tampering. On the other hand, the jury could have downgraded the murder charge to manslaughter or criminally negligent homicide—or acquitted him altogether.

“Anne-Christine frequently used to express to me that she feared you’d get away with it if you ever killed her,” Molly Elliott, Johnson’s sister, told Hardy after Grady invited the victim’s family to speak. “Well, you didn’t get away with it, and you are paying for what you did. Thirty years is not enough for what you did, but I know Anne-Christine can rest easy now.”

Johnson’s mother also addressed Hardy, vowing to help other women who are “trying so desperately to escape people like you.”

Three years after her daughter’s death, Stephanie Johnson can barely utter her name, she said, and picturing her last moments is torture.

“For years I’ve perversely wondered how Anne-Christine’s face looked before you hooded her with a plastic grocery bag from Kroger’s while she gurgled her last breaths. When did the light of life extinguish in her eyes? When did she realize that this time there would be no escaping your insane wrath?”

Hardy and Johnson met in 2010 at Christian’s Tailgate in Houston, where she was a waitress. After a whirlwind courtship, Johnson moved to Hardy’s place in League City, where his father, Barry Hardy, and uncle, Dale Hardy, are prominent businessmen. The couple’s son, Roland, was born in 2011.

By the time Hardy and Johnson married in 2012, he was already isolating, insulting, and shoving her, according to her family and friends. She considered fleeing with Roland, but she worried that Hardy, who worked for the city and had friends on the police force, would have her arrested.

When the couple divorced in 2015, Hardy hired a sitting judge to represent him, while Johnson had no lawyer at all. Hardy was awarded custody of Roland; Johnson was granted only two hours a week with him.

Unwilling to abandon her son, Johnson moved back in with Hardy just weeks after the divorce, whereupon his abuse escalated dramatically. On the night of June 15, 2015, Hardy beat, pistol-whipped, and strangled Johnson while Roland slept just a few feet away, according to an application for a protective order that she later filed. She fled to the hospital and reported him to police, who could have arrested him for a felony punishable by ten years in prison but instead arrested him for nothing at all. And though Child Protective Services investigated the incident, it ruled that Roland should remain in Hardy’s care.

Johnson stayed away from Hardy for months after the attack, but in the fall of 2015, she returned again to be with Roland. The next summer, there was another split, and Johnson pursued a serious relationship with a man she met at work. But when Hardy told her he had cancer and was too ill to care for Roland alone, she returned to him for what would be the last time.

“Of course, you never had cancer,” Elliott said to Hardy at the hearing.

Police believe Hardy killed Johnson on the night of December 8, 2016. The next day, Johnson’s father, Lee, went to Hardy’s house to pick her up for a meal. Hardy told him that Johnson didn’t live there and that he didn’t know where she was.

“All these lies, when her body was in fact in your garage, just a few feet from where I was standing,” Lee Johnson said to Hardy on Monday. “That sickens me.”

On December 12, 2016, the Johnsons reported Anne-Christine missing and told police they feared that Hardy had hurt or killed her. But officers didn’t obtain a search warrant for Hardy’s property until December 30, by which time her body was badly decomposed and the crime scene had apparently been cleaned.

In the run-up to the scheduled trial, prosecutors repeatedly warned Johnson’s family that there was limited forensic evidence against Hardy on the murder charge. And though Hardy had issued a gruesome confession to police upon his arrest, his lawyers convinced Grady to suppress that.

These factors likely played into the prosecution’s decision to negotiate with Hardy. Meanwhile, his team was contending with setbacks, too.

Chris Reed, a well-regarded police chief in another Galveston County town, Kemah, was a close friend of the Hardy family and intended to testify on Hardy’s behalf. But Reed died in a boating accident in June, weeks before the trial was to begin. Though the trial was continued as a result of Reed’s death, Hardy’s team was unable to replace him with a champion of equal stature.

And in August, Hardy, who had been free on bail for two years and was living in his father’s beach house on Bolivar Peninsula, was sent back to jail. Barry Hardy’s bank had declined to renew the letter of credit he was using to secure Shaun’s bond, according to a document filed in court by the bondsman. Barry, who is in the midst of a divorce, has said publicly that his finances are strained.

After the hearing, Hardy’s lead attorney, Dan Krieger, wouldn’t say much about why his client had decided to admit to both charges after three years of fighting them. But Krieger did say that jurors might have imposed a lengthy sentence on Hardy based on emotion, particularly since Johnson was a young mother.

Prosecutors Kacey Launius and Paul Love said after the hearing that they were fully expecting to take the case to trial and were surprised when Hardy’s team approached them earlier this month to discuss a possible deal. Initially, Hardy offered to plead guilty to manslaughter instead of murder.

In addition to Johnson’s family, about 30 people showed up Monday to honor her, including one of her last bosses, her best friend from kindergarten, and a neighbor to whom she gave piano lessons.

On the other side of the courtroom, two women appeared to be supporting Hardy, but they did not consent to an interview.

The fate of Roland, now 8, is uncertain. In the wake of the murder, Barry Hardy was awarded custody of the boy at a hearing that the Johnsons didn’t know about. A couple of months later, Stephanie Johnson sued him for joint custody, or, in the alternative, for the right to host Roland at her home for regular weekend-long visits.

That suit is scheduled for a jury trial in Galveston County in January. Meanwhile, Johnson has signed a mediated settlement with the Hardys that allows her to see Roland twice a month with Barry present.