DISCLAIMER: I usually preface my movie reviews with big spoiler warnings, but in this case, I’ll just tell you that I’m going to keep this piece as “spoiler-free” as possible. That’s kind of an oxymoron since I do have to talk about some specifics, but I wouldn’t want to ruin one of the biggest movies of the year for you.

Personally, I try not to read reviews—even those claiming to be “spoiler-free”—beforehand because I’m crazy and paranoid about spoilers lurking around every corner. If you’re anything like me, you should wait to read any review (including this one), so you can go into the theater with a blank slate and decide for yourself.

Ok, onto the review…

I don’t know how he did it, but J.J. Abrams actually pulled it off! The writer/director/producer extraordinaire found a satisfying way to wrap up the massive “Skywalker Saga” that George Lucas first kicked off more than four decades ago with the first Star Wars movie in 1977.

The Rise of Skywalker is not only a fitting end to the iconic nine-part space opera, but it’s also an unexpected adventure full of twists and turns that doubles as a pitcher full of deliciously sticky nostalgia. I gotta give Abrams serious props on this since he kind of let me down with The Force Awakens, which—as you know by now—is just a rehash of A New Hope.

With Episode IX, though, I laughed, I cried, I gasped, and smiled like a big dumb galoot. There’s just something magical about this movie, which takes all the beloved elements of Star Wars, neatly ties them up, and allows them to work together in harmony. The classic tale of good versus evil, hope versus darkness, and resistance versus oppression feels so pure here.

Co-written by Abrams and Chris Terrio (Argo, Justice League), The Rise of Skywalker picks up a year after the events of The Last Jedi. Following the Battle of Crait, the Resistance (led by Carrie Fisher’s General Leia Organa) is in shambles, desperate for some help in its fight against the First Order and a new foe: Emperor Sheev Palpatine.

Yep, Ian McDiarmid’s iconic villain is back, despite having died at the hands of his apprentice, Darth Vader, in 1983’s Return of the Jedi. “The dead speak!” proclaims the opening crawl, which informs us that Palpatine's voice is being mysteriously broadcast throughout the galaxy.

The movie wastes no time in revisiting such a famous antagonist and kicks things off with Kylo Ren (Adam Driver) confronting the decrepit Emperor, who has been hiding out in the darkest corner of the galaxy and is now a milky-eyed, fingerless husk of his former self.

While some may find the presence of Palpatine a little too convenient (think Christoph Waltz’s Blofeld in Spectre), it’s really great to see McDiarmid back in the role after all this time. The 75-year-old actor doesn’t miss a creepy beat in the performance, as if he just filmed Revenge of the Sith yesterday and not 14 years ago.

The Sith (which is actually into some pretty dark sh** as it turns out) is gaining in power, and it’s up to Rey (Daisy Ridley), Finn (John Boyega), Poe Dameron (Oscar Isaac), C-3PO (Anthony Daniels), Chewbacca (Joonas Suotamo, who is responsible for one of the moments that made me all misty-eyed), and BB-8 to find a way to stop the rise of what Palpatine calls “the Final Order.”

The Rise of Skywalker is very much a spy movie as our heroes hop from planet-to-planet, getting chased by flying stormtroopers, avoiding detection, infiltrating First Order ships, and hunting down clues that lead the fabled Sith planet of Exegol.

From a desolate desert planet that holds an ancient dagger (there’s some Indiana Jones in the story as well) to a water-logged moon of Endor that serves as a graveyard for the ruins of the second Death Star, the sprawling journey is jam-packed with characters both new and old; obscure and well-known; humanoid and alien; organic and mechanical.

While Rey and Kylo usually get all the love, the film takes the time to build on Poe and Finn via newcomers like Zorri Bliss (Keri Russell) and Jannah (Naomie Ackie). Even C-3PO gets a chance to shine, as every last character in this universe has their moment in the spotlight before the final curtain call.

And speaking of #Reylo, I’d be spoiling plenty since the two adversaries factor heavily into the plot and its major (and I mean MAJOR) secrets. Rest assured, however, that Rey does further explore her powers and origins. I am also happy to report that The Rise of Skywalker actually turned Kylo Ren into a likable character for me. Quite the accomplishment!

Again, I won’t spoil anything, but there are a ton of appearances in this movie, both expected and unexpected. Abrams wisely knows how to dole each of them out, so as not to look too fan service-y. All I’ll say is this: make sure to keep your eyes (AND EARS) open at all times.

Carrie Fisher, who passed away in 2016, was brought back to play Leia through the use of unused footage from The Force Awakens. Sadly, several of her lines in Rise of Skywalker feel shoe-horned in, which is a real bummer when you consider that the ninth episode was supposed to be Leia’s big moment, where she went full Jedi. Even so, there is no denying that it’s great to see the former princess of Alderaan back for one last story in the galaxy far, far away.

It also seems like the violence was ramped up for The Rise of Skywalker. Nothing gets too gory (this is a Disney release after all), but I definitely sensed in an uptick in the force—get it?—of some deaths, as if J.J. wanted to underscore the long and bloody conflict the galaxy has suffered through all these years.

As always, the exotic locales and practical effects are second-to-none. Whether it’s a pint-sized droid-smith named Babu Frik or the late Admiral Ackbar’s son, Aftab, Abrams once again shows that he prefers to do as much stuff in-camera as possible. The puppets and prosthetics exude a character and life in a way that CGI isn’t able to do yet.

Sorry, Star Wars prequels. I still love you guys.

While I am a big fan Rian Johnson’s much-maligned eighth episode, The Rise of Skywalker pretty much renders The Last Jedi obsolete. Johnson’s bold and subversive storytelling choices (the explanation of Rey’s parents, for example) are swept aside in favor of big reveals and secrets that knock down dominos set up in The Force Awakens.

If you were curious about who that Force-using boy was at the end of TLJ, you won't find any answers here.

I didn’t mind this, but it does make the new trilogy feel rather slipshod and inconsistent. That said, Abrams does keep the Force-related link between Rey and Kylo—a concept that lends itself well to some pretty awesome lightsaber battles.

Then there’s the original music of John Williams, who I’m pretty sure is incapable of writing a bad movie score. Weaving together all of his classic cues in a neat little bow, the composer adds in a few new ones that just feel right. There’s really no other way to explain it, folks. It’s as if these never-before-heard musical creations have been fomenting like fine wine in Williams' brain for the last 42 years, collecting an oaky and beautiful finish.

All of the score—which is sweeping and poignant—gets an A+ from me, but I was particularly partial to an eery riff on “The Imperial March.” I repeat: keep those ears pricked!

Feeling more like the follow-up we should have gotten to The Force Awakens, The Rise of Skywalker is big, surprising, beautiful, reverent, thoughtful, bittersweet, dark, epic, hopeful, and very much aware that it needs to pull out all the stops. Abrams & Co. profoundly understood all the beats—nostalgic or otherwise—that had to be hit along the winding path that led to the end.

There’s still plenty I need to process at this time. The movie is so packed with content like the Knights of Ren and the return of Billy Dee Williams' Lando, that I’m sure I forgot to mention a lot of stuff in this review. Nevertheless, I can say with a lot of certainties that I loved Rise and can’t wait to see it again. It may just be my favorite installment of the new trilogy.

And before you ask, the answer is yes…porgs do make an appearance.

Star Wars: The Rise of Skywalker hits theaters everywhere this Friday, Dec. 20.

Mark Hamill, Domhnall Gleeson, Richard E. Grant, Lupita Nyong'o, Kelly Marie Tran, Billie Lourd, Dominic Monaghan, and Greg Grunberg co-star.