SPOILER ALERT: This story contains details about tonight’s How to Get Away With Murder Season 4 finale “Nobody Else is Dying” on ABC.

A car crash, a stolen baby, a long-lost son, a break-up, deportation, criminal justice reform, and, obviously, murder – the Season 4 finale of How to Get Away With Murder had it all covered. Lots of loose ends were tied up, and the foundations laid for a brand new mystery – with a new character – that could take the show into its as-yet unconfirmed fifth season.

First up on the list of revelations was this epic twist: Bonnie (Liza Weil) is not dead. Yes, we saw an overturned car at the end of the previous episode; yes, it definitely looked like she was a goner, and in true HTGAWM twisty style, the finale episode opened with what we assumed was her corpse on a table. There was the medical examiner listing the injuries of “the decedent” while standing over the body – it was all very convincing. Then we had to wait for two whole scenes before a very-much-alive Bonnie bounded into view and it all fell into place: Denver (Benito Martinez) is dead; Bonnie is not.

Fans were right to be nervous for Bonnie. As creator Pete Nowalk told press at a preview screening, no one is safe. “Game of Thrones, that first season, it was crazy to me to kill off the main character, but I think to me, that’s the nature of this show, and it makes it really hard because I’ve fallen in love with the characters. That’s what’s hard writing it, and it’s also hard for the actors. They do know that anyone could go out at any point.”

But perhaps the biggest deal of the finale was the fantastically juicy new mystery in the form of new character Gabriel Maddox (Rome Flynn). Towards the end of the episode, Frank (Charlie Weber) is back at Middleton, and behind him at enrollment, a new guy catches his eye. New guy says his name at the sign-up desk, and that’s it, Frank is sure. He makes a call. “Her kid’s here,” he says, ominously.

Meanwhile, we’re thrown other new-mystery bones. Nate (Billy Brown) is sorting through Denver’s pile of evidence, having already saved the day by retrieving the incriminating hard drive. Nate zeroes in on the file Denver kept on Bonnie. ‘100% DNA match’ someone has helpfully scribbled on a test result print-out. ‘Child still alive?’ is written next to it. Is this mystery Maddox person Bonnie’s son? We were definitely told he was dead. But of course, it’s not HTGAWM’s style to be straightforward. Also, more stress for Bonnie would be unfortunate, since she’s just happily discovered she’s a Tinder match with the prosecutor (John Hensley).

VIOLA DAVIS, AJA NAOMI KING, JACK FALAHEE, MATT MCGORRY, KARLA SOUZA, CONRAD RICAMORA, CHARLIE WEBER

“I can’t really tease too much,” Nowalk said, “but just know that was a genetic test for Bonnie and this child, so it’s all related basically. All we know is Bonnie said in episode five that she was told her child was born dead. So she’s lying, or someone else is lying to Bonnie, it’s all possible.”

When it comes to Denver’s untimely death, we’re not positive the culprit is Jorge (Esai Morales), Laurel (Karla Souza)’s estranged father, but we do see him in possession of Laurel’s baby son, “to remind you of what’s at stake here” he tells her on the phone, while accusing her of hurting her mother, who is missing.

Which brings us to a piece of mystery that remains unsolved in this episode: has Laurel killed her mother? “She is dead to me, as are you,” Laurel tells her dad, after Annalise (Viola Davis) negotiates the return of the baby.

But next comes something much more telling. While, thanks to Annalise’s machinations, Jorge is being picked up by the feds for allegedly murdering Denver, we see Laurel asleep and dreaming about the fight with her mom. “Tell me why I shouldn’t kill you,” Laurel screams at her. Then Laurel’s awake and in the shower with vicious scratches on her arm – a nice intriguing lead-in to a potential Season 5 storyline.

“The whole premise of the show is we don’t know what we’re capable of until we’re in an emotional moment,” Nowalk said of Laurel’s situation. “I do think something clearly happened – the scratches aren’t from a cat we haven’t seen yet.”

KARLA SOUZA

Then there’s the messy collapse of Asher (Matt McGorry) and Michaela (Aja Naomi King)’s romance after Michaela cheated with Scandal’s Marcus Walker (Cornelius Smith Jr.) in the Scandal/ HTGAWM crossover episode. Early on in the finale, we’re treated to a shot of Asher sobbing in the bathroom, followed by a fight in which she tells him, “I’m not evil.”

But wait, maybe she is evil. Despite Annalise’s careful, considerate planning to stop Simon (Behzad Dabu) telling the feds everything, and her shutting down Michaela’s idea to call ICE and have him deported – “I’m not sending a gay man back to Pakistan, that’s not who we are” – Michaela goes and calls ICE anyway, and off Simon goes.

Which leads to an explosive long-time-coming stand-off between Michaela and Annalise. “You’ve been trying to become me this whole time,” Annalise says, “and now that you’ve done it you must be proud.”

“I’ve become me,” Michaela shoots back.

Luckily, we pause for a heartwarming moment: Annalise has won her criminal justice reform class action case in the Supreme Court and is now, the television announces, “a legal powerhouse on a national level.” Then a bit later, Annalise is being interviewed on camera. “What will you do next?” the interviewer asks. “I don’t know” Annalise says, looking lost.

Fortunately Nowalk knows better. If there is to be a Season 5, he sees big career moves for Annalise after this class action case. “Being a different type of defense attorney I think will really drive her,” he said, adding, “I want to make it feel as different and real as possible. I don’t think she’s going to go back to teaching.”

What’s certain is that after this finale, fans will be desperate to hear confirmation of a Season 5.