The person who killed Wes is… Dominic! Who? Huh? Never mind all the characters we already know who might have a motive. Instead, How To Get Away With Murder’s Season 3 finale (actually two episodes jammed together, “He Made a Terrible Mistake” and “Wes”) introduced us to a brand new hunky hit man (Nicholas Gonzalez) mere moments before showing him choking Annalise’s beloved puppy to death. It turns out Laurel’s father (Esai Morales) of all people had Wes killed, and we have no idea why. But hey, at least we know he did it. None of the characters — namely Laurel (Karla Souza), who’s on her way to gun down suspected killer Charles Mahoney (Wilson Bethel) by episode’s end — know yet. And to make the situation even more impossible: the seemingly mid-30s Charles is actually Wes’ father. So Laurel’s dad killed his daughter’s baby’s father, and Laurel herself was just about to kill her unborn baby’s grandfather. Got all that? It all makes very little sense as of now, but surely Season 4 will bear some answers. The simplest explanation for why Laurel’s dad might want Wes dead is that he knew Wes was considering an immunity deal and needed to protect his daughter. But it’s also possible he didn’t mean to have Wes killed at all and just wanted to blow up his daughter’s evil boss’ house or even Annalise herself. Either way, Laurel’s father knows and has been orchestrating a whole lot that’s gone on in Philadelphia, likely much more than we realise. But beyond his and Dominic’s association with the series’ other major new villain, District Attorney Denver (Benito Martinez), all we really know about Laurel’s father is that he’s a very wealthy, very corrupt Miami-based “telecommunications specialist” who bugs people’s phones on demand and hates when his daughter disappears on him. Excuse me for channeling Laurel for a moment, but poor Wes (Alfred Enoch) deserved so much better than this. His death already seemed like a shady plot device designed to make Season 3 as shocking as possible, and pinning a major character’s demise on such a bit player as Laurel’s dad feels like a bit of a copout. How convenient that Annalise gets to save herself and the rest of the gang by selling Wes out, effectively sweeping multiple murders under the rug with his whereabouts-unknown ashes. The only redeeming thing about Wes’ death at this point is that it offered Viola Davis a perfect opportunity to deliver that emotionally shattering “farewell, my son” confession at episode’s end. We still don’t know who “Christophe” called from the cab, although chances are Laurel’s dad was either on the other end or could hear it somehow. We still don’t know why Annalise called Laurel and Connor along with Wes to her house that night. And we’re still unsure of the connection between the powerfully wealthy Mahoney family and anything involving Annalise, including Wes’ murder. I’m predicting a Capulets vs. Montagues-esque backstory between the Castillos and the Mahoneys in Season 4. At the beginning of the finale, Connor (Jack Falahee) is overwhelmed with guilt that he might have killed Wes when he found him “still warm” in the basement, attempted CPR, and heard a rib crack, then realised the gas line had been cut and ran away. That’s a lot of mess crammed into a few seconds of crucial Wes-saving time, and Laurel unleashes all her anger on Connor, urging him to kill himself for leaving her lover of a few hot minutes to die. Possibly as punishment for being so ridiculous, Team Keating puts Laurel on the stand instead of Connor at Annalise and Frank’s hearing. Laurel tearfully tells Connor’s story as if it were her own. Bad idea: DA Denver whips out a signed statement claiming Laurel lied to authorities about being kidnapped years ago. I’m confused as to whether this document hails from her actual teenage years or if it’s the same one Laurel signed earlier this season — remember those papers for a “new investment” that she rolled her eyes and signed without hesitation (what an excellent law student) so that her father would help her hunt down Frank? In any case, Laurel insists to the incredulous Keating clique that she had to lie in order to “protect” her dad. Connor can’t handle keeping the truth to himself, so he shows up at Denver’s office begging for the immunity deal they’d offered Wes. But as he’s lurking in there alone, something buzzes deep within Denver’s desk drawer. It’s Asher (Matt McGorry), finally phoning the “mystery number” the team procured from Atwood’s phone log. Connor finds himself face to face with the burner phone Denver used to frame Annalise and then the evil-eyed DA himself. Suddenly, Connor’s the one who’s been kidnapped. Desperate to take Annalise or any of her cohorts down, Denver meets with Dominic (who killed Wes) in his car, suggesting they’ve been in cahoots this whole time. He brings Wes’ cell phone back to the dungeon he’s keeping Connor in and threatens that if Connor doesn’t sign this immunity deal and spill everything, he’ll frame him for Wes’ murder by saying he found Wes’ phone in Connor’s car. Total insanity. Just as Connor’s about to be arrested for Wes’ murder, he has a stroke of genius: “What if I know something that could put her away?” he taunts the detectives, then tells them about the copy of Annalise’s phone over at Oliver (Conrad Ricamora)’s house. Here’s why that wiped phone has been so important: There’s a voicemail from Wes in which he implicates himself him for Sam’s murder and potentially others. “You can’t go down for what I did,” Wes says. “There’s no way I could live with myself.” Annalise deleted it upon a first listen that night, but of course nothing is ever really deleted. So in light of this phantom voicemail that only exists in her memory and a hidden folder no one else bothers to pull up, Annalise insists that framing Wes is the “only way” to save them all from going to prison. “It’s death in there,” she says, “and this horrible thing that we must do, it’s life.” Not everyone is pleased. “You’re turning him into a murderer,” Laurel fumes. “He was a murderer,” murmurs Bonnie (Liza Weil), also a murderer, but not according to the court system, not if this plan works. Annalise goes to Denver herself and sells Wes out, paraphrasing the voicemail he could find if he were to really dig deep on her phone. “Wes killed my husband…and he killed his girlfriend, Rebecca.” Annalise claims Denver doesn’t know the ultra-violent Wes Gibbins she did. “In the end,” she says forlornly, “there was always the monster.” That’s why Wes killed himself, she tells Denver. “Better to die than go to jail.” Meanwhile, Michaela (Aja Naomi King) finally admits she loves Asher, and a relieved Oliver asks Connor to marry him. Devotion is in the air, and it’s on the floor, too, as the newly jail-sprung Frank (Charlie Weber) kneels before Annalise, vowing to help her find the people who killed Wes. “I’ll do whatever you want,” he practically begs her in what feels like a repeat of so many other scenes this season. I could have sworn that when a dark figure slowly sidled around the corner in Bonnie’s living room, it’d turn out to be Wes. No such luck, and the season ends with Annalise “coming clean,” in a way, at an AA meeting. “He felt like my son,” she cries. “He was my son, and now he’s gone.” The shards of Wes’ puzzle remain, though, and Annalise and the others will have plenty to piece together in Season 4. As Sylvia Mahoney hinted ominously, “You are wrong about so much…”