For two whole hours on network television, Fox staged the Season 3 finale of Gotham. After the Mad Hatter’s virus spreads across the city, the infamous urban jungle of the DC Universe is plunged into chaos, compelling all the key players to come out to play. Fates are decided, bodies pile up, dogs and cats live together, it’s all just mass hysteria. But in the end, the city’s crown prince Bruce Wayne (David Mazouz) takes one step closer to becoming the legendary Batman.

In the two-part finale, which consists of episodes titled “Destiny Calling” and “Heavydirtysoul,” Jim Gordon (Ben McKenzie) struggles with his infection of the Mad Hatter’s virus while he tries to cure Lee (Morena Baccarin) with the antidote. But the virus’s extreme negative effects — aggression, super strength, a general loose grasp on reality, possibly a forerunner to Bane’s venom — keeps the plot from moving as quick as it should. Meanwhile, Gotham’s worst criminals including Fish Mooney (Jada Pinkett Smith), Mister Fries (Nathan Darrow), Hugo Strange (BD Wong), Penguin (Robin Lord-Taylor), and the Riddler (Cory Michael Smith), Barbara Gordon (Erin Richards), and Butch (Drew Powell) all collide in a power grab for Gotham while the city is at its most vulnerable.

And while all of that happens, Bruce Wayne (David Mazouz) finally comes face to face with the man behind it all: Ra’s Al Ghoul (Alexander Siddig). Told to visit the Demon’s Head to complete his training (for what, I imagine?), Ra’s compels Bruce to kill his loyal butler Alfred (Sean Pertwee) but immediately cures him with the League of Shadows’ most powerful asset, the healing waters of the Lazarus Pit. It’s really dark that Bruce kills Alfred before he’s Batman, but the presence of the Lazarus Pit relieves any tension before the shock actually settles in.

This being two entire episodes, there’s so much that goes on it’s honestly hard to keep track. Double-crosses and cold-blooded murders are in abundance in Gotham City, but what’s important lies in how Gotham is finally willing to accept its destiny as a Batman TV show. The murder of Butch reveals he is, in fact, the undead Solomon Grundy, while Selina Kyle (Camren Bicondova) finally gets a whip. (No Harley Quinn though, despite David Mazouz’s insistence just a week ago.) But the most obvious, significant evolution is Bruce Wayne. At the very end of the finale, Wayne — dressed in a very uncomfortable makeshift outfit — adopts a vigilante lifestyle when he single-handedly saves a family of three from a Crime Alley mugging. Sound familiar? Of course it does.

It may be another three years before Gotham puts Bruce Wayne in a cape and cowl. In fact, I’m already exhausting thinking how the origin-obsessed Gotham will find a way to make a ten-episode arc out of explaining away his spandex or rubber body armor. But for now, Gotham is about the closest to being the Batman show fans have wanted for so long.

Photos via Fox