Ever since the first time the Flash and Arrow crossed over back in 2014 with “Flash vs. Arrow” and “The Brave and the Bold,” the CW has been growing its superhero crossovers. Last year’s three-part “Invasion!” storyline was huge, but the network sought to top itself this year with a four-part storyline titled “Crisis on Earth-X.” And boy, did they ever. The event pulled in many of the best characters from each series, past and present, and put them all together, with some of the lead actors even pulling double duty.

Where last year’s crossover had Supergirl, Flash, the Green Arrow, and the Legends fighting an alien invasion, this time around it was Nazis from multiverse world called Earth-X, where the Nazis won the second World War and heroes landed in different places, sending all kinds of ripples throughout their world. The Nazis, led by evil variants of the Green Arrow and Supergirl (called Overgirl on Earth-X), discovered a portal between Earth-X and Earth-1, where the majority of CW’s heroes reside. The villains crash Barry and Iris’ wedding in hopes of taking down all of Earth’s greatest heroes at once to pave the way for domination of a second world.

It was everything I hoped for, and I’m about to dive into spoilers, so brace yourselves.

The CW has been wading into the crossover waters slowly, and this was the first year where the quartet of supershows really felt at home with this huge event. It moved like a single machine rather than a bunch of individual pieces stuck together. The most visible representation of this was that the four shows eschewed their usual opening sequences and intro monologues for a unified opening sequence that preceded each episode.

While I knew I was technically watching an episode of Arrow or Flash or one of the other shows, because it said as much in the TV guide, it never felt like that. Characters moved in and out of the story as needed without regard to whose episode it was, and story threads were paced appropriately and felt natural.

That on its own made the whole thing feel good. That it was filled with some awesome moments didn’t hurt.

One of the first memorable moments for the crossover was the hookup of Sara Lance and Alex Danvers. What could’ve been a moment of sheer fanservice or just a nod toward equality ended up being a relationship that factored into the whole crossover for both characters. Alex’s relationship troubles in recent episodes of Supergirl had left her a little emotionally fragile – believably so – and it was fun to watch her come away from the crossover with new self confidence. The writers made sure to give us a ton of moments showing off the similarities of the two characters, who play often quite different roles on their respective shows.

And that was sort of a common thread throughout the crossover. While those two were going through their journey, Legends of Tomorrow‘s Jax and Stein, the two parts of Firestorm, were continuing theirs. Stein has been contemplating departing the Legends for some time, and we knew from casting news that actor Victor Garber was set to leave Legends sometime this season. The small moments the two had together earlier in this season of Legends and through the crossover were paid off when Stein sacrificed himself to save Supergirl, Arrow, Flash, and the rest of the team. It felt meaningful and real. Stein has at some point interacted with most of the other characters, and so for him to leave during the crossover made sense. We got to see teams Flash, Arrow, and the Legends all react to it.

But it wasn’t just characters having relationships. It was also heroes kicking Nazi ass. And so much Nazi ass did they kick.

Making fight scenes work in an event this big can be really tough. The fight can focus too much on one character, or end up looking totally chaotic and not giving us time to appreciate any of these beloved characters. But a miracle – and probably nightmare – of logistics and artistry on the parts of the choreographers and camera team made sure that didn’t happen during any of the crossover’s many fights. Some characters only had a few minutes here and there, but the crossover still managed to give them a spotlight. Kid Flash Wally West, for example, got to look dope when he caught the bullets from a bunch of Nazi guns and threw them back into the guns. It was totally implausible, utterly perfect for a superhero, and they made him look great doing it.

On the vigilante side of things, Oliver (Stephen Amell), Sara (Caity Lotz), and Alex (Chyler Leigh) all got plenty of chances to show how their physical training has paid off with clean, closeup fights that make me that much more annoyed and disappointed with Marvel’s Iron Fist. Lotz has come into her own as a major force on Legends, and her place as one of the main characters of this crossover felt right. As an aside, I doubted that Legends would be any good when it was announced, partly because Lotz’ Canary didn’t seem significant enough a character to warrant a show. But I was totally wrong.

On the super side of things, we had too many great moments to count. The Flash and Reverse Flash – played again by Tom Cavanagh as in Flash season 1 – had a protracted battle that made great use of the CW’s refined abilities with visual effects. They hit the sweet spot between fantastical and believable over and over. A scene that had a whole slew of characters taking on the Supergirl villain Metallo could’ve been a breaking point for the visual effects team, but they nailed it and it ended up being fun.

Perhaps my favorite part of the whole thing, though, was all the ways the show made use of the multiverse and doppelgangers throughout.

Melissa Benoist struggled a bit playing Overgirl, but clearly had a great time with it. Wentworth Miller made one of his final appearances in the Arrowverse, this time as Earth-X’s Citizen Cold. Instead of an honorable rogue like on Earth-1, Citizen Cold is pure superhero. He also served to introduce Earth-X’s new hero, The Ray, played by actor Russel Tovey. Tovey and Miller didn’t get as much time on-screen together as they could’ve, but their chemistry was instantly believable. Secondary characters like Captain Lance of Arrow and Winn of Supergirl popped up in the crossover to good effect, too. Perhaps the best was the return of actor Colin Donnell, who played Oliver’s friend Tommy Merlyn in Arrow‘s first season. It was one last way to bring in the original run after Arrow‘s season 5 finale that felt meaningful and earned.

But it wasn’t just the doppelgangers themselves that were fun. All this craziness, of which the characters were deeply aware the whole time, led to some great interactions. When Rory had a moment alone with Citizen Cold, the double of his dead friend, the two butted heads, leading Rory to say, “you’re not my partner, you’re a gangbanger,” to which Citizen Cold replied, “I think you mean doppelganger.” These characters are fun to put together no matter what world each is from.

What made all of this work, though, is how light-hearted everything was. It took the Nazi threat seriously, and there were dangerous moments, but everything had a positive tone. Characters grew in meaningful ways that will inform how they move forward on their own shows. The losses they experience affected the whole league of heroes.

Warner Brothers needs to be looking at the CW next time it’s getting ready to put its heroes together for the inevitable Justice League sequel. CW has it figured out.