image

 

On May 18, 2019, five friends left Paradisa Restaurant at 11:47 p.m., laughing and unsteady with champagne. Sophia stood near the valet stand calling for an Uber while the others waited. They never made it to the car. There were no witnesses. No security footage. No bodies. Just five women who stepped out onto a busy street and ceased to exist.

For 2 years their families searched. Sophia’s boyfriend offered a $500,000 reward. He cried on television, begged for information, and organized vigils every month, presenting himself as the devoted boyfriend who would not give up hope. The case became a citywide obsession, fueled by podcasts, documentaries, and endless theories because nothing about it made sense.

Then a construction crew breaking ground on Riverside Drive cracked open concrete that had been poured in the wrong place—an old foundation that was not supposed to be there, sealed with fresh cement 2 years earlier when the site was supposed to be vacant. Inside were 5 bodies wearing the same dresses from their final Instagram posts. What turned the discovery from horror into explanation was what Daniela Castillo found in her sister Khloe’s clenched fist: a torn piece of monogrammed shirt, a shirt someone insisted they had not been wearing that night.

The excavator’s teeth scraped against something that made Roy Mendes stop. He had spent 23 years operating heavy machinery and knew the difference between striking rock and striking something that should not be there. He had been breaking up the old foundation since dawn, the May heat already soaking through his shirt even though it was barely 8:00 a.m.

“Hold up,” Roy called, climbing down from the cab.

The concrete here was different—newer. It did not match the weathered foundation from the original warehouse. Someone had poured a fresh slab 2 or 3 years ago, right where the old basement had been. The excavator had cracked it open like an egg, and through the split he saw fabric. Blue fabric. Silk, maybe—the kind his daughter had worn to prom.

Roy’s stomach turned. He had been in construction since he was 19 and had seen plenty of things buried where they should not be—dead pets, stolen goods, even a car once. But silk did not last unless it was protected from the elements, unless it had been buried recently, unless it had been wrapped around something.

He pulled out his phone, his hands shaking as he dialed 911.

“I need police at the Riverside Drive construction site. The old Brennan warehouse,” he said, tasting bile as he swallowed. “I think we found someone in the foundation.”

Within an hour, yellow tape sealed the site. Detective Patricia Reeves stood at the edge of the broken concrete while the forensics team worked below with brushes and small tools, careful as archaeologists.

But this was not ancient. The concrete was dated. Someone would analyze it, match it to a specific batch, maybe even identify where it had been purchased. A forensic technician climbed up from the hole and spoke quietly.

“5 bodies. Young women. Been here a while, but not decades. Maybe 2 years based on decomposition.”

Reeves felt her chest tighten.

Two years. May 2019. She knew exactly who they were before they found formal identification. The whole city did. Five friends who vanished after dinner, leaving no trace. A case that haunted Reeves because there had been no signs of struggle, no witnesses, and nothing to chase.

Her phone buzzed.

“Reeves here.”

“We found a wallet,” a technician called up from below. “Driver’s license is still readable. Khloe Castillo.”

Daniela was in her Chicago apartment when her mother called. She had been spreading peanut butter on toast, running late for her shift at Northwestern Memorial. For 2 years, calls from Carmen had often meant another tearful update from a psychic or yet another theory about where Khloe might be. Daniela had learned to protect herself, to compartmentalize. She was a doctor. She dealt in facts, not hope.

She almost did not answer.

When she did, her mother’s voice sounded different. Not crying. Something worse.

“Mija,” Carmen said. “They found her. They found all of them.”

The knife slipped from Daniela’s hand and clattered onto the floor, peanut-butter side down.

“Where?” Her voice came out strangled.

“A construction site,” Carmen said. “Riverside Drive.”

The words broke.

“They’ve been there the whole time. Under concrete. Someone killed them and hid them there.”

Daniela slid down the kitchen cabinet until she hit the floor. Two years of searching, of Carmen lighting candles at St. Augustine’s every Sunday, of Marcus leading search parties through Lincoln Park and putting up flyers in coffee shops. Two years spent wondering if Khloe had run away, if she had been trafficked, if she was still alive somewhere needing help.

But she had been 3 miles from home, dead the entire time.

“I’m coming home,” Daniela heard herself say. “I’ll be there in 2 hours.”

She did not remember the drive. One moment she was in Chicago; the next she was pulling into her mother’s driveway in Riverside, the same house where she and Khloe had grown up. The garden was overgrown. Carmen had stopped caring about roses after Khloe disappeared.

Inside, Carmen sat at the kitchen table surrounded by photographs—Khloe at high school graduation, Khloe in college, and the last picture from Paradisa. Five friends glowing with youth and wine. Sophia in the middle with her arm around Khloe. Meredith making bunny ears behind Jenna’s head. Laurel laughing at something off camera.

“The detective wants to talk to us,” Carmen said without looking up. “They need family to identify.”

“I’ll do it,” Daniela said immediately. “You don’t have to see her like that.”

But even as she spoke, she knew she needed to see. She needed proof that this was real, that the searching was over, that her sister was truly gone.

Detective Reeves met them at the medical examiner’s office. She was younger than Daniela expected, maybe 40, with tired eyes that had seen too much.

“I’m sorry for your loss,” Reeves said, and Daniela could tell she meant it. “I need to ask you some questions, but first—anything you can tell me about that night? Anything Khloe might have mentioned?”

“She was excited,” Carmen whispered. “It was Sophia’s birthday dinner. Just the 5 of them, like always. They’ve been friends since high school.”

The medical examiner’s office smelled of industrial disinfectant and something else Daniela recognized from anatomy labs. Death had a particular odor even beneath chemicals, and this was different because it was personal. This was Khloe.

Outside the viewing room, Reeves paused.

“You don’t have to do this. We have DNA and dental records. We can confirm identity without—”

“I need to see her,” Daniela said. Her voice was steady, training taking over: compartmentalize now, process now, fall apart later.

Through the window were 5 tables with 5 sheets. The medical examiner lifted the second sheet just enough to reveal a face that had once been her sister. Soft tissue was gone, bone visible, but the silver earrings were still there—the ones Daniela had given Khloe for her 21st birthday.

“That’s her,” Daniela managed. “That’s Khloe.”

Reeves nodded to the medical examiner, who covered Khloe again.

“There’s something else,” Reeves said. “We found something in her hand. She was holding on to it when she died.”

She produced an evidence bag. Inside was a piece of light blue Oxford cloth, expensive, with part of an embroidered monogram visible.

“Ma—” Reeves read. “The rest is torn away. Do you recognize this?”

Daniela stared at the fabric. Her mind raced while she forced her face to stay neutral.

“No,” she said.

But she did.

She had seen Marcus Ashford wear that shirt a dozen times—the custom Oxford from Brooks Brothers Sophia had given him for Christmas. He had worn it to Carmen’s Easter dinner only weeks before the women vanished.

Back at her mother’s house, Daniela went to Khloe’s room. Carmen had left it exactly as it was: clothes still draped over a chair, makeup scattered on the dresser, bed unmade as if Khloe might return any minute. The only things missing were her phone and purse from that night.

Daniela sat on the bed and opened Khloe’s laptop. The password was still their childhood dog’s name. The browser opened to Khloe’s last tabs—Instagram, Gmail, and an Uber receipt from May 18, 2019. The Uber had been canceled at 11:52 p.m., 5 minutes after they left the restaurant.

She checked synced iMessage texts. The last conversation was in the group chat named ride or dies, the 5 of them planning dinner, picking the restaurant, Sophia insisting on Paradisa because she wanted truffle pasta. Then nothing after 11:30 p.m., when Meredith wrote, “Getting the check. Be out in 5.”

Daniela’s phone buzzed.

Unknown number.

She answered.

“Is this Daniela Castillo?”

“Yes.”

“This is Tyler Morrison,” the voice said. “I was Meredith’s boyfriend. I heard they found them. I need to talk to someone. The police aren’t telling me anything.”

“And I know something wasn’t right that night.”

They met at a downtown coffee shop—one of the generic chains where no one paid attention to anyone else. Tyler looked like he had not slept in days, maybe years.

“Meredith was supposed to come to my place after dinner,” he said. “We had plans. She was staying over. We were driving to Vermont in the morning. But she texted me at 11:48 saying Sophia wasn’t feeling well.”

“Marcus was picking them up,” Tyler continued, “and they were all going to make sure she got home.”

“Marcus picked them up,” Daniela repeated carefully.

“That’s what she said,” Tyler replied. “Which was weird, because Sophia had been posting Instagram stories all night, and she looked fine. Drunk, maybe, but not sick. And why would all 5 of them need to go?”

Tyler hesitated.

“Meredith kept saying Marcus gave her bad vibes. Too controlling. She wouldn’t have gotten in his car unless—”

“Unless Sophia really needed her,” Daniela finished.

“They were like sisters,” Tyler said. “If Sophia was in trouble, they’d all go.”

Tyler pulled out his phone and scrolled.

“This is from a week before they disappeared.” He showed her a message Meredith had sent him: “Marcus showed up at Sophia’s work again today. Third time this week.” Another line followed: “It’s sweet, but it’s weird. Who sits in their girlfriend’s office lobby for 3 hours? Controlling psycho, if you ask me.”

“Did you tell the police?” Daniela asked.

“2 years ago,” Tyler said. “Yeah. They said Marcus had an alibi. He was at his apartment. Doorman confirmed he came home at 10:00 p.m. and didn’t leave. Security footage backed it up.”

Daniela knew that building. She had been there for Sophia’s housewarming. The service entrance had no cameras, and the doormen watched the front.

Marcus could have left and returned without being seen.

“There’s more,” Tyler said. “The night before they disappeared, Meredith told me Sophia was thinking about breaking up with him.”

“She’d had enough of the jealousy, the showing up everywhere, the phone checks.”

“They were going to dinner to celebrate her being free.”

Sophia’s birthday dinner was not just a celebration. It had been intended as a freedom party.

That evening, Daniela drove to the Riverside Drive site. The tape still hung, but forensics had cleared out. She stood at the fence staring at the hole where her sister had been buried for 2 years, trying to understand how it could have happened so close to home without anyone seeing.

Her phone rang.

Detective Reeves.

“We found something else,” Reeves said. “Can you come to the station?”

Under fluorescent lights, Reeves led her to a small conference room. Evidence bags were laid out on a metal table: 5 purses with contents sorted and labeled, 5 phones with cracked screens preserved for forensic work.

“We’ve been going through their belongings,” Reeves said, pulling on latex gloves. “Most of it is what you’d expect, but something is odd about the timeline.”

She held up Sophia’s phone in its rose-gold case.

“Sophia sent a text to Marcus at 11:47 p.m. saying, ‘Heading home, baby. Love you.’”

Reeves slid a printed report toward Daniela—cell tower pings.

“Her phone never left the restaurant area. None of their phones did. They all stopped transmitting at 12:23 a.m., within a minute of each other.”

“Like someone destroyed them all at once,” Daniela said.

“Or threw them somewhere they couldn’t transmit—water, maybe, or a metal container.”

Reeves tapped another section of the report.

“Marcus’s phone shows him at home at 10:00 p.m., like his alibi states.”

“But there’s a gap. From 11:15 p.m. to 2:47 a.m., his phone was off or in airplane mode.”

“That’s not proof,” Daniela said, even as her pulse quickened.

“No,” Reeves agreed. “But it’s suspicious.”

“And there’s this.” Reeves produced another evidence bag containing a hardware store receipt dated May 16, 2019—2 days before the disappearance.

Concrete mix. Plastic sheeting. A shovel. Paid in cash.

Daniela studied the store name and location.

The hardware store was in Rogers Park, nowhere near where any of the women lived.

“Whose pocket?” she asked.

“Sophia’s.”

“Like someone put it there deliberately,” Daniela said, “or like she grabbed it trying to leave evidence.”

The door opened and an older detective entered, gray-haired, with a permanent frown.

“Miss Castillo,” he said. “I’m Detective Jim Walsh. I was the original lead on your sister’s case.”

Something in his tone tightened Daniela’s shoulders.

“You closed the case after 6 months,” Daniela said. “Said they probably ran away.”

“We followed the evidence,” Walsh said defensively. “Five adult women, no signs of foul play, no bodies. Sometimes people want to disappear.”

“They were murdered,” Daniela shot back. “Buried in concrete.”

Walsh’s jaw hardened.

“We’re reopening the investigation, obviously, but you need to understand something. Marcus Ashford has been cooperative. He paid for private investigators, offered rewards, kept the case in the media.”

“That’s not typical behavior for a killer.”

“Unless he’s smart,” Reeves said, cutting in. “Playing the grieving boyfriend. Hiding in plain sight.”

Walsh shot her a warning look.

“We deal in facts, not speculation.”

After Daniela left the station, she sat in her car and made the call she had been avoiding.

Marcus answered on the second ring.

“Daniela. God, I heard. I can’t believe it. I can’t.”

His voice broke.

“They found Sophia.”

His grief sounded real. But he had had 2 years to practice.

“Marcus,” Daniela said, “I need to ask you something. That night—did you see them at all after dinner?”

There was a pause.

Just a bit too long.

“No,” Marcus said. “I was home. I told the police. I was tired from work. Went to bed early. I didn’t even know they were missing until the next morning when Sophia’s mom called me.”

“Tyler said Meredith texted him that you picked them up,” Daniela said.

Silence.

“Tyler’s confused,” Marcus replied. “He’s grieving. Meredith never sent that.”

“He has the text.”

“Then someone else sent it,” Marcus said quickly, “someone using her phone, because I was home. The doorman saw me. The camera saw me. I loved Sophia.”

Daniela remembered Easter dinner. Marcus showing off a new phone app that could clone text messages, making them look like they came from any number. He had demonstrated by sending a fake text that appeared to come from Sophia’s phone. Everyone had laughed.

Such a funny trick.

That night Daniela returned to Khloe’s laptop. She combed through every social media post from the final day.

On Jenna’s Instagram story posted at 11:15 p.m., a video inside the restaurant caught the valet area through a window. In the background, a black BMW sat near the stand.

Marcus’s BMW.

The one he claimed was parked in his building’s garage all night.

Daniela screenshot the frame, her hands shaking.

Then she searched deeper in the weeks prior and found a private Facebook post Laurel had made 3 weeks before the disappearance: a friend seeking advice. Her boyfriend had installed tracking apps on her phone, showed up everywhere, accused her of cheating if she didn’t respond immediately. She wanted to leave but was scared. The comments urged a restraining order, changes to locks, never being alone with him, telling everyone what was happening.

The final comment was from Meredith, posted May 17, 2019.

We’ve got her back. Planning an intervention. She’s going to be okay.

Daniela could not sleep. Every time she closed her eyes she saw Khloe at that restaurant, laughing, unaware she had hours left.

At 3:00 a.m., she drove to Paradisa. It was dark and closed. She sat in the parking lot staring at the valet stand, trying to force her mind to accept the chain of events.

Her phone buzzed.

A text from an unknown number.

Stop digging or you’ll end up like them.

Her blood went cold. She screenshot the message and called Detective Reeves, who answered despite the hour.

“Someone just threatened me,” Daniela said.

“Where are you?”

“Paradisa parking lot.”

“Jesus Christ. Get out of there. Come to the station now.”

By the time Daniela arrived, Reeves had traced the number.

Burner phone. Purchased with cash at a 7-Eleven yesterday.

“But here’s the interesting part,” Reeves said. “It was activated near Marcus’s apartment.”

Walsh appeared in the doorway, rumpled and angry.

“That’s still not proof. Could be anyone in that neighborhood.”

“How many people in that neighborhood have a reason to threaten Khloe Castillo’s sister?” Reeves shot back.

“We don’t know. Could be some sick internet troll. This case has been all over Reddit for 2 years.”

Daniela’s phone rang.

Her mother.

“Someone broke into the house,” Carmen said, terrified. “They didn’t take anything but Khloe’s room. Everything’s destroyed.”

Daniela raced home with a police escort.

Khloe’s room looked like a tornado had hit it. Drawers emptied, mattress slashed, clothes shredded. But it was the wall that made Daniela’s knees weaken.

Written in red lipstick—Khloe’s lipstick—were the words:

Stop now.

“He’s scared,” Reeves said quietly, photographing the room. “He knows we’re getting close.”

“We need protection for them,” Reeves told Walsh. “Round the clock.”

“Based on what?” Walsh demanded. “We have no proof Marcus Ashford did anything. You want surveillance on one of the city’s most prominent businessmen because of a theory?”

Marcus’s family owned half the commercial real estate in Riverside. His father played golf with the mayor. His mother sat on the hospital board where Daniela had done her residency. Walsh was right about one thing.

They needed more than circumstantial evidence.

The next morning, Daniela called Marcus and asked to meet for coffee.

“I need to talk to someone who loved Sophia as much as I loved Khloe,” she said.

They met at a Starbucks downtown, public and crowded. Marcus looked haggard. Weight loss had loosened his suit. His hair was uncombed.

“I know what people are saying,” Marcus began. “That I had something to do with it. It’s killing me, Daniela.”

“Tell me about that night,” Daniela said. “The truth.”

“I’ve told the truth a thousand times. I was home.”

“Sophia was going to break up with you.”

Marcus froze with his cup halfway to his mouth.

“Who told you that?”

“Does it matter?”

He set the cup down carefully.

“We were having problems. I know I was too clingy, too jealous. I was working on it. I was seeing a therapist. I loved her. I wanted to marry her.”

“Show me your phone from that night,” Daniela said.

“What?”

“You turned it off. Airplane mode. Why?”

“I needed sleep for a conference call.”

“You never turn your phone off,” Daniela said. “Sophia used to complain about it. You checked it constantly. But that one night—when she disappears—you turn it off.”

Marcus’s face darkened.

“I don’t have to listen to this.”

“The BMW in Jenna’s Instagram story,” Daniela said. “That was your car.”

Marcus stood up.

“You’re grieving. I understand. But this has to stop.”

“The hardware store receipt in Sophia’s pocket,” Daniela said. “The concrete you bought 2 days before.”

Marcus went very still.

“What receipt?”

It was a slip. The police had not released that detail.

“How do you know about the receipt, Marcus?”

“I—The detective mentioned it.”

“No, they didn’t,” Daniela said. “So how do you know?”

Marcus’s hands began to shake. People were staring.

“You’re trying to confuse me,” he said.

“Twist my words.”

“Meredith texted Tyler that you picked them up,” Daniela pressed. “That’s impossible unless someone used her phone. Like that app you showed at Easter. The one that can fake messages.”

Marcus leaned in close. Daniela saw something dark flash in his eyes.

“You have no idea what you’re doing,” he whispered. “Stop now.”

“Or what?” Daniela said. “You’ll do to me what you did to them?”

Marcus jerked back as if struck, then turned and walked out, leaving his coffee untouched.

Daniela called Reeves.

“He slipped about the receipt,” she said. “And he threatened me in front of witnesses.”

“It’s not enough,” Reeves replied. “But it’s something. I’m pushing for a warrant to search his properties.”

The warrant was denied. Marcus’s attorney, David Brennan, filed an injunction claiming harassment. Marcus and Brennan held a press conference on the courthouse steps.

“My client has been nothing but cooperative,” Brennan said to reporters. “He kept these girls’ faces in the media. He never gave up hope. And now, in his darkest hour of grief, he’s being persecuted by a family looking for someone to blame.”

Marcus stepped to the microphones.

“I loved Sophia with all my heart,” he said. “I would have done anything to protect her. The real killer is out there laughing while you waste time investigating an innocent man.”

Daniela watched from her car, rage tightening her throat.

He was good.

Oscar-worthy.

Her phone rang.

Tyler.

“I found something,” he said. “Can you meet me? Not in public. My apartment.”

Tyler lived in a converted loft in the arts district with exposed brick and huge windows. Paintings covered the walls—many of them Meredith’s. There was a portrait of all 5 friends from the previous summer, their faces bright with life.

“After you left the coffee shop yesterday,” Tyler said, “I remembered something.”

He pulled out an old tablet.

“Meredith was paranoid about backing everything up. She had a cloud account she thought I didn’t know about. I remembered the password.”

He opened the account. Hundreds of files appeared. A folder labeled evidence sat near the top.

Inside were screenshots of text messages between Sophia and Marcus, stretching back months. The progression shifted from affectionate to controlling.

Where are you?

Who are you with?

Why didn’t you answer immediately?

Then, 2 weeks before the murders, the tone changed again.

If you leave me, I’ll kill myself.

Sophia replied: That’s not fair. You need help.

Marcus: I’ll kill myself and it will be your fault. Everyone will know.

Sophia: I’m calling your therapist.

Marcus: I don’t have a therapist. I lied. I don’t need one. I need you.

The final exchange was from the morning of May 18.

Sophia: It’s over. Don’t contact me again.

Marcus: We’ll see about that.

Daniela felt sick.

“This proves motive,” she said.

“There’s more,” Tyler said, opening a video file.

The footage was shaky, filmed in what looked like Sophia’s apartment the night before. All 5 women sat in a circle on the living room floor. Sophia was crying.

“You have to file a restraining order,” Meredith’s voice said behind the camera. “Show them the texts.”

“He’ll ruin me,” Sophia sobbed. “His family owns everything. They’ll destroy my career.”

“We won’t let that happen,” Khloe said, squeezing Sophia’s hand. “We’re your family. We protect each other. Ride or die.”

Jenna nodded. Laurel nodded.

“We’ve got a plan,” Laurel said. “Tomorrow at dinner we celebrate your freedom. Then you stay with me for a while. He won’t know where you are.”

“What if he shows up at the restaurant?” Sophia asked.

“He won’t,” Meredith said firmly. “You told him you were going to your mom’s this weekend. He has no idea about the dinner.”

The video ended.

Daniela stared at the screen.

They had tried to protect Sophia.

All of them.

And they had died for it.

They took the material to police, but Tyler had already tried earlier that morning.

Walsh had said it was inadmissible—illegal access, fruit of the poisonous tree. Without written permission, Tyler’s login could not be used in court.

They had proof, and it was worthless.

There had to be something admissible.

Tyler remembered one last thing.

“Meredith had a safety deposit box. She told me it had important documents.”

Only family could access it.

“Her sister,” Daniela said. “Emma. She lives in Boston.”

Daniela called her.

Emma flew in that night. Daniela had met her once at a memorial six months after the disappearance. Emma looked like Meredith—same red hair, same fierce eyes.

“I always knew it was him,” Emma said in the car the next morning. “Meredith called me a week before she died. Said Sophia was in trouble. Said they were going to handle it.”

At the bank on Monroe, a manager led them into the vault.

“I remember your sister,” the manager told Emma. “She came in the week before she disappeared. Added something to her box.”

Emma inserted the key with a shaking hand.

Inside were Meredith’s passport, birth certificate, bonds, and a manila envelope labeled just in case.

Printed emails lay inside—messages between Marcus and a college friend.

She’s going to leave me. I can feel it.

So let her go. Find someone else.

No. If I can’t have her, nobody can.

Dude, that’s psycho talk.

I’m serious. I’d rather see her dead than with someone else.

The emails were dated a month before the murders.

They brought everything to Detective Reeves.

In the police station conference room, Reeves read the emails and looked up.

“This is it,” she said. “This is enough for a warrant.”

The door burst open.

Detective Walsh stood in the doorway, face red.

“What the hell are you doing, Reeves?”

“We have new evidence,” Reeves said.

“Inadmissible evidence,” Walsh snapped. “Ashford’s lawyer already called.”

“The emails were in Meredith’s safety deposit box,” Emma said. “I had every right.”

“They were stolen from Ashford’s private account,” Walsh replied. “Doesn’t matter where they ended up. Fruit of the poisonous tree.”

Daniela stood.

“You’re protecting him.”

Walsh’s expression darkened.

“Watch yourself, Ms. Castillo.”

“How much did they pay you?” Daniela demanded. “Or are you just afraid of his family?”

“You’re emotionally compromised,” Walsh said. “I’m removing you from any involvement.”

“You can’t remove me,” Daniela said. “I’m not part of the investigation.”

“A private citizen harassing a grieving man,” Walsh said. “Leave now or I’ll have you arrested.”

Outside, Reeves caught up to them.

“I’m sorry,” she said. “Walsh has connections to the Ashford family. But I’m not giving up. Go home. Let me work.”

Daniela could not go home.

She drove to the construction site instead, walking its perimeter, staring at fresh pours and rebar, trying to understand how one man could have controlled 5 women at once. Even with a gun, someone should have screamed, fought, run.

Unless they trusted him.

Unless, until the end, they believed he would not really hurt them.

Her phone rang.

Unknown number.

She answered.

“Daniela,” a woman whispered. “This is Kate. Kate Ashford.”

Marcus’s sister.

Kate told her to meet at St. Mary’s Church on Riverside, in the cemetery behind it, in 1 hour.

The cemetery was overgrown, headstones dating back to the 1800s. Kate stood near an oak tree, looking over her shoulder.

“I know what he did,” she said. “I’ve always known what he was capable of.”

As a child, Kate had a cat named Princess. Marcus hated that she loved something more than him. Princess disappeared. Marcus helped look, put up flyers, comforted Kate when she cried.

Three months later, Kate found Princess’s body in an old freezer in the garage. Strangled.

Marcus did not know Kate had found her.

Kate said she had started watching him—the way he manipulated their parents, played the perfect son, hurt people and made it look like accidents. Girlfriends who suddenly transferred schools or moved away.

“Why are you telling me now?” Daniela asked.

Kate handed her a flash drive.

“The night Sophia disappeared, Marcus came to my apartment at 3:00 a.m. Covered in dirt. Concrete dust in his hair. He said he’d been helping a friend with construction work.”

The flash drive contained security footage from Kate’s building showing Marcus arriving in that state. Kate also told Daniela there was a room in their parents’ basement behind a false wall, a hidden space where Marcus kept trophies from girlfriends—jewelry, clothes, photos, and videos.

“If we tell the police, Walsh will bury it,” Kate said. “You need someone else. Someone not connected to this city.”

Daniela thought of her med school roommate—an FBI agent in Chicago.

That night Daniela received a text from Marcus.

Kate visited you today. Family should stick together. She’s confused. Mental health issues. Wouldn’t it be terrible if she had an accident?

Daniela screenshot the message and forwarded it to her FBI contact with 2 words: Help, please.

At dawn, FBI Special Agent Rachel Morrison arrived in Riverside with a small team. Federal jurisdiction was thin, but Rachel found an angle: the Ashford family company held federal contracts, and there was evidence of using company resources during crimes.

“We need Kate’s testimony,” Rachel told Daniela, inside a federal building outside Walsh’s reach.

“Is she willing?”

“She’s terrified,” Daniela said. “He threatened her.”

“We can protect her,” Rachel replied. “Witness protection if necessary.”

Daniela called Kate.

Straight to voicemail.

Again.

Nothing.

A cold dread settled in her stomach.

They went to Kate’s apartment. The door was ajar. Inside was evidence of struggle—lamp knocked over, papers scattered. No blood. No body.

“He took her,” Daniela said. “He’s cleaning up loose ends.”

Rachel issued a BOLO for Marcus and Kate. She secured a federal warrant for the Ashford family estate, specifically the basement behind the false wall Kate had described.

The estate was a sprawling Tudor mansion on 10 acres. The kind of old money that bought influence. Marcus’s parents were conveniently overseas when the FBI arrived.

The finished basement looked like a recreation room—pool table, bar, vintage arcade games. But thermal imaging revealed the false wall within minutes.

Behind it was Marcus’s shrine.

Walls covered in photographs—not only of Sophia, but of dozens of women going back years. Some Daniela recognized as ex-girlfriends who had supposedly moved away. Others were strangers. Each photo was labeled with a date and initials.

In a cabinet were jewelry boxes labeled the same way.

Sophia’s emerald necklace—the one she wore to dinner—sat inside a box marked ST, May 18, 2019.

But it was the laptop that held the real horror.

Dozens of videos.

Hidden cameras in Marcus’s apartment, in his car, even inside Sophia’s apartment.

An FBI technician scrolled through files and went pale.

“We’ve got them,” she said. “May 18. 11:58 p.m. Multiple files.”

Daniela could not watch. Rachel did, narrating quietly while taking notes.

“He picked them up outside the restaurant. Told them Sophia’s mom had been in an accident and was in the hospital.”

“All 5 got in to support her.”

“He drove them to the construction site, said he knew a shortcut.”

“They didn’t suspect anything until he pulled in.”

Daniela could not finish the question aloud. Rachel answered anyway.

“He had a gun. And he drugged them.”

“The champagne bottle. The video shows him near their table earlier when they were in the bathroom. He put something in.”

“They were already weakened when they realized.”

“Sophia figured it out first. She tried to grab the wheel.”

Rachel paused.

“That’s when he shot her.”

The others tried to run, but the drugs slowed them.

Rachel’s voice tightened.

“He hunted them through the construction site like it was a game.”

The videos showed everything.

The evidence was airtight.

But Kate was still missing.

Then Carmen called Daniela.

“There’s someone at the door,” Carmen said. “She says she’s Marcus’s sister. She looks hurt.”

Daniela and Rachel raced to the house.

Kate stood on the porch, bloody and shaking, a gash on her forehead, clothes torn.

“I got away,” she said. “He took me to another property, an old warehouse. He was going to—”

She swallowed.

“I stabbed him with a pen and ran.”

“He’s there,” Kate said. “He’s hurt. You can get him.”

Agents converged on the warehouse. Marcus was gone. Blood on the floor confirmed Kate had injured him, but he had escaped.

An APB went out nationwide. Evidence processing continued. There was no question now: Marcus had killed the 5 women methodically.

They needed to find him.

Three days passed.

No sign.

Then Daniela remembered Marcus bragging at Easter about a panic room built during the Cold War—completely hidden, he had said. You could live there for months and no one would know.

She called Rachel.

“Check the estate again. There’s a panic room.”

They found it behind a bookshelf in the study, accessed by pressing a specific sequence of books. Marcus was inside—fevered, delirious, the pen wound festering.

He did not fight as they arrested him.

As agents pulled him out, he looked at Daniela.

“They were going to leave me,” he said, as if that explained everything.

“All of them. They were going to take her away from me.”

“So you killed them all?” Daniela asked.

“I loved her,” Marcus said. “More than anything.”

“You never loved her,” Daniela replied. “You owned her. There’s a difference.”

Marcus smiled, cold and terrible.

“Check the construction site again,” he said. “There are more than 5.”

Ground-penetrating radar scanned the area. They found 3 more bodies buried deeper, older. Concrete poured at different times: 2017, 2015, 2013.

Dental records identified them.

Rebecca Chen, a college girlfriend who had supposedly transferred to California.

Lisa Rodriguez, who had allegedly moved back to Mexico.

Sarah Peterson, a high school girlfriend everyone believed had run away.

Three women over 6 years.

Practice runs before the 2019 murders.

Rachel and her team cross-referenced Kate’s list of names with missing-person databases.

Twelve more potential victims surfaced.

“This is a serial killer,” Rachel said quietly. “At least 10 years, maybe more.”

The story exploded. The real estate heir who had murdered women for a decade. The 5 friends were no longer only victims. Their discovery had finally exposed him.

For Daniela, the noise faded. She wanted one thing.

Justice for Khloe.

The trial was set for 6 months out. Federal prosecutor Janet Williams met with the families and laid out what to expect.

“They’re going to claim insanity,” she said. “Or diminished capacity.”

“Sterling will try to get the videos thrown out, argue the warrant was based on Kate’s testimony and that she’s unreliable.”

Kate had a history of anxiety and depression. Marcus’s parents had committed her briefly at 17.

“We know why,” Daniela said, “years of abuse.”

“But a jury might not,” Janet replied.

Pre-trial hearings were brutal. Marcus’s defense team, led by Robert Sterling, challenged jurisdiction, claimed FBI overreach, argued prejudice. Judge Harrison denied every motion.

“The evidence stands,” she ruled. “The jury will see it all.”

Marcus’s parents returned from Europe and hired a PR firm. They gave scripted interviews claiming they had no idea. Reporters dug deeper and found former staff who described young Marcus’s cruelty to animals and the family’s pattern of cover-ups.

Detective Walsh quietly retired, claiming health issues. Reeves was promoted to lead detective. The night before trial, Reeves called Daniela.

“I’m sorry,” she said. “For Walsh. For the delays. If we’d listened sooner.”

“You listened when it mattered,” Daniela replied.

The trial began on a cold November morning. The courthouse was surrounded by cameras, protesters, and supporters. Daniela sat front row with Carmen, holding her mother’s hand while Janet Williams outlined the case.

Janet began with the videos, not playing them in full, but describing them in detail. She introduced the shrine photographs and trophies. Forensic experts testified that the concrete matched the receipt, the bullets matched Marcus’s registered gun, the bodies’ positioning aligned with the footage.

Kate’s testimony on day 3 crushed the defense.

She trembled but did not break. She told the jury about Princess, about years of fear, about Marcus arriving at her apartment at 3:00 a.m. covered in concrete dust. She looked at her brother as she spoke and did not look away.

“I should have said something sooner,” she said, crying. “Those women might be alive if I had. I’ll carry that guilt forever.”

Sterling tried to paint her as unstable and jealous, brought up her hospitalization. Kate turned to the jury.

“Yes, I was hospitalized at 17. Do you know why? Because I was living with a sociopath who killed my cat and threatened to kill me if I told anyone. My parents didn’t believe me. They chose him over me.”

“So yes, I needed help.”

“But I’m not crazy.”

“I’m not lying.”

“I’m finally brave enough to tell the truth.”

The defense argued Marcus had snapped under pressure, that Sophia’s rejection triggered a break. Janet destroyed that with the earlier murders. This was not a snap. It was a pattern.

On the final day, Marcus took the stand against counsel’s advice. He was calm, charming, trying to work the jury.

“I loved Sophia,” he said. “I was jealous, possessive, but I was getting help.”

“Where?” Janet asked. “Which therapist?”

There were no records.

“Online therapy,” Marcus said. “Anonymous.”

“How convenient,” Janet replied. “No records, no proof.”

“I don’t need to prove I’m innocent,” Marcus said. “You need to prove I’m guilty.”

Janet smiled coldly.

“We have your own videos.”

“Should we play them for the jury? Let them see exactly what you did?”

Marcus’s composure cracked.

“They were going to leave me,” he said. “All of them.”

“They turned Sophia against me.”

“So you killed them,” Janet said.

Marcus tried to catch himself, but it was too late.

The jury deliberated for less than 3 hours.

Guilty on all counts.

Eight counts of first-degree murder.

Life without parole in federal maximum security, consecutive sentences.

The sentencing hearing was set for a month later. Each family would speak. Daniela rewrote her statement again and again.

The night before sentencing, Rachel called.

“Marcus wants a deal,” she said. “He says there are more bodies.”

“He wants life with possibility of parole in exchange for locations.”

“No,” Daniela said immediately. “He doesn’t get to bargain with their bodies.”

That was the prosecutor’s position too. But other families wanted closure.

They met at Emma’s apartment, the families and Tyler. They argued, they cried, they weighed the cost.

In the end, they supported a modified deal. Marcus would reveal locations in exchange for the possibility of transfer to medium security after 25 years—not parole.

Marcus accepted.

Over the next week, he led agents to 4 more bodies. Women from neighboring states, not even connected to him publicly. The count reached 14 victims total, though investigators suspected there were more he refused to reveal.

Sentencing proceeded on a gray December morning. Daniela stood at the podium and looked at Marcus in shackles.

“Khloe was 23,” she said. “She wanted to be an elementary school teacher because she said that’s when you can make the biggest difference.”

“She volunteered at the literacy center every Saturday teaching adults to read.”

“She made the worst coffee I’ve ever tasted and insisted on making it every morning when I visited.”

“She could make anyone laugh.”

She faced Marcus.

“You took that from the world.”

“You took the teacher those kids will never have.”

“The aunt my future children will never know.”

“The daughter my mother cries for every night.”

“You took 4 other women just as valuable.”

“And for what? Because you couldn’t own someone? Because your ego couldn’t handle rejection?”

“You’re not a monster. Monsters can’t help what they are.”

“You chose this. Every time.”

She asked the court to ensure he never had the chance to choose violence again.

Emma spoke next, then Sophia’s parents, Jenna’s family, Laurel’s family. Each statement rebuilt the women as people, not headlines.

Marcus was allowed to speak.

“I’m sorry,” he said, hollow.

Judge Harrison cut him off.

“I’ve reviewed psychiatric evaluations. Multiple experts agree you show no genuine remorse. Only regret at being caught.”

“Your apology is meaningless.”

She sentenced him to life without parole at ADX Florence.

The medium-security transfer possibility after 25 years would require extensive review and victim-family input, if the time ever came. She ordered asset liquidation and distribution to the families and domestic violence prevention organizations, noting attempts by the family to hide assets would be investigated separately.

The gavel came down.

It was over.

Outside the courthouse the families stood together, ignoring the shouted questions. They held each other and cried, finally able to begin real grief now that the legal end had arrived.

Years later Daniela stood in the cemetery where Khloe was buried. It was May 18, the anniversary. She brought yellow roses—Khloe’s favorite—and sat beside the headstone, speaking as if her sister were still there. All 5 friends were buried in the same section. Their headstones formed a circle. A memorial bench stood at the center with a plaque:

Five friends, five lights, forever bright.

“Hey, Khloe,” Daniela said, arranging the roses. “Mom’s doing better.”

“She started volunteering at the literacy center. Took over your Saturday shift.”

“She says the kids remind her of you.”

Tyler and Emma had married the month before. Their ceremony was held there. Tyler had become a victim’s rights advocate, using his tech skills to help families of the missing. Emma had gone to law school, focusing on domestic violence cases.

“Kate’s doing well too,” Daniela said. “She’s in therapy. Real therapy. She testified in another trial. They caught someone before he hurt anyone. Thanks to her.”

A shadow fell across the grass. Detective Reeves—now Captain Reeves—approached holding her own bouquet.

“I hope you don’t mind,” Reeves said. “I come every year too.”

They sat together on the bench, looking at the 5 headstones.

“We found another one,” Reeves said quietly. “Construction crew in Indiana. Marcus won’t confirm, but the timeline fits.”

“Fifteen victims now.”

The number kept growing, even with Marcus locked away, his past crimes surfacing like bodies from concrete.

“Does it ever end?” Daniela asked.

“The discoveries?” Reeves said. “Eventually.”

“The impact? Never.”

Reeves hesitated.

“There’s something else I didn’t put in the official report.”

She handed Daniela a printed screenshot.

“Khloe’s phone. We recovered more than we initially reported.”

“There was a draft text to you. Never sent.”

The timestamp read 12:03 a.m., May 19, 2019.

Danny, something’s wrong. Marcus is driving us, but this isn’t the way to the hospital. Sophia’s mom isn’t sick, is she? If something happens, know that I love you. You were the best big sister. Take care of mom. Don’t let her blame herself. And don’t you blame yourself either. Some people are just broken. We tried to help. Remember us for that, not for how it ends.

Daniela’s tears fell onto the paper. Even in fear, Khloe had thought of others. She had tried to protect them from guilt.

“They were brave,” Reeves said.

“The videos show they fought.”

“Meredith shielded Khloe.”

“Jenna tried to distract him so Laurel could run.”

“They didn’t die as victims.”

“They died as warriors.”

After Reeves left, Daniela sat alone as the sun sank, turning the cemetery gold. She thought about everything Marcus had destroyed beyond the women he killed—parents who never recovered, siblings who woke up forgetting and then remembering, friends who still saved places at dinner out of habit.

She also thought about what had changed afterward: strengthened domestic violence laws, an alert system named after the case that flagged patterns of controlling behavior, the women who left abusive relationships after seeing Sophia’s story and recognizing their own danger.

Her phone buzzed. A message from her husband, a fellow doctor she had married years later, someone who understood her need to visit Khloe and held her when the nightmares returned.

Dinner at 7. Your mom’s making Khloe’s terrible coffee recipe.

Daniela smiled through tears. They had learned to live with Khloe’s absence by carrying her into ordinary life, letting her memory sit beside them without poisoning everything.

She stood and touched each headstone—Khloe, Sophia, Meredith, Jenna, Laurel—and whispered each name. Then she walked back to her car and back to the living, carrying the dead with her.

As she drove away, she passed the site on Riverside Drive. It was a shopping center now, bright and busy. No plaque marked what had been found beneath it. But Daniela knew. The families knew. The city knew, even if it tried to forget.

Marcus Ashford served his life sentence at ADX Florence. He appealed three times and failed each time. He would die alone in a concrete cell, remembered only as a cautionary tale.

It was not justice. Justice would have been 5 women living their lives. But it was consequence. It was accountability. It was the best a broken world could offer.

Daniela drove home, carrying Khloe’s last dinner frozen in memory: 5 friends laughing, unaware they had 3 hours left, but spending those final hours together, protecting each other until the end. The foundation on Riverside Drive had been paved over and built upon, forgotten by most. But sometimes, when it rained, the concrete seemed to remember what it had hidden.

Five friends vanished after dinner, found 2 years later, their clasped hands and protective positions telling the story of loyalty that even death could not break. They were gone, but not forgotten.

And in the end, that was the only victory the living could claim against someone who had tried to erase them entirely.