I have to confess, when I first saw the trailer for the new DC superhero film Shazam!, it didn’t really grab me. I wasn’t sure what to think of the concept or the costume, and I feared the final product might be too cheesy. I wasn’t necessarily looking forward to watching it.

However, I’m happy to admit that my initial impression turned out to be wrong. Shazam! is an incredibly fun, feel-good superhero movie, and I walked out of the theater with a huge smile on my face. While it doesn’t carry the same sense of epic grandeur and emotional weight as Wonder Woman, it has a much more coherent story than Aquaman (which, to be fair, was still a fun film). At least at this point, I think it’s safe to say that the DC cinematic universe has finally found its footing. Hopefully the trend will continue!

For the uninitiated, Shazam is the alter ego of a somewhat unlikely superhero candidate: Philadelphian teenager Billy Batson. Separated from his mother at a young age, Billy has jumped from foster home to foster home, never able to find a sense of belonging.

Then one day, he is transported to a magical cave where an ancient wizard offers him magical powers that are activated by saying the word “Shazam!” Understandably skeptical, Billy complies and then immediately realizes his life is never going to be the same.

Whenever he shouts “Shazam,” he turns into an adult with a bright red costume with a yellow lightning bolt, and he does indeed gain superpowers — like flying and channeling electricity. Still, simply having powers doesn’t automatically make one a hero, and Billy has to learn how to take his gifts seriously and use them to help others.

As a film, Shazam! strikes a nice balance: it’s funny without being too silly, and it’s earnest without being heavy-handed. I’m sure I’ve said this before, but as much as I love large-scale, interconnected storytelling in superhero films — like the lead-up to “Infinity War” and “Endgame” — sometimes it’s nice to see smaller scale movies like Shazam! At its heart, it’s really a family film that just happens to involve superheroes.

While Zachary Levi does a great job as Shazam and is clearly having a blast playing a teenager trapped inside an adult superhero’s body, I was also impressed with the young actors in this film. I loved watching the friendship develop between Billy (Asher Angel) and his foster brother Freddy (Jack Dylan Grazer).

I also enjoyed Mark Strong as the film’s villain — who turned out to be a more nuanced character than I was anticipating. I’m a big fan of Strong’s, so I’m glad they gave him a role with a little more to do besides just “mustache-twirling villain.”

In some ways, he’s like a darker reflection of Billy — he too experienced rejection and a lack of belonging as a child. Yet instead of finding healing, he holds onto his pain, and he turns to revenge as his motivation for living. They could have even done more to really play up the nuance of the villain, and contrast this with Billy’s own story — which is my only real complaint about the movie. Still, “not enough nuance” is better than “no nuance” when it comes to a movie’s villain, at least in my opinion.

Some other highlights — the film does a good job portraying authentic diversity, and I loved the cast of young actors playing all of Billy’s foster siblings. There is also a really great twist at the end of the film that I really loved but don’t want to say anymore because I might spoil the surprise.

In short, I’m glad I decided to go to the theater with an open mind, because I really enjoyed this movie, and watching it just made me feel good inside. With everything going on in this world, sometimes you need a warm and funny film that reminds you that there are still good people in this world, and that everybody deserves to find a sense of belonging and “home.”

(Oh, and there’s also a really great cameo at the end of the film — one of my favorite-ever cameos in a superhero film, actually. But you’ll have to watch and find out what it is!)