JAMES McAvoy is a force to be reckoned with in Split.
The X-Men favourite takes on the complex and disjointed role of Kevin, a man with at least 23 different personalities, in the latest psychological thriller from M Night Shyamalan.
Shifting back and forth between very distinct personalities, ranging from a woman to a budding fashion designer to an eight-year-old boy, McAvoy portrays Kevin's dissociative identity disorder convincingly.
It's a mammoth task I can't imagine many other actors being capable of achieving.
Shyamalan doesn't mess about, getting straight into the action within the first few minutes of the film.
Dennis, one of Kevin's more devious personalities which his mild-mannered alter-ego Barry has tried to keep in check, rises to the surface and compels him to abduct three teenage girls.
Claire (Haley Lu Richardson) and Marcia (Jessica Sula) are popular girls who extend a birthday party invite, out of pity, to their loner classmate Casey (Anya Taylor-Joy).
But it is Casey who first clues on to their kidnapping, and the strange behaviour of their kidnapper, and manages to keep a calm head throughout Kevin's disturbing shifts.
After they are drugged, the three girls wake up in a locked room which, they learn, is part of a series of claustrophic rooms and hallways Dennis has secured to prevent their escape.
While the drama unfolds, Kevin's other personalities manage to sound the alarm with his psychologist Dr Fletcher (Betty Buckley), who tries to tease out what's going on in several impromptu therapy sessions.
But she can't stop a final personality - referred to as "The Beast" - from materialising.
As the film reaches its menacing climax, I found myself in awe of McAvoy and the physical intensity he brings to the role.
While there's not that much gore, or even violence, in Split, it still had me on the edge of my seat.
Among the life-or-death drama, Shyamalan finds a few brief moments to slyly sneak in some comedy. One scene involving eight-year-old alter-ego Hedwig delivers unexpected laughs before plunging you straight back into nail-biting tension.
This is a return to form for Shyamalan. I'm hesitant to say Split is better than 2015's The Visit, but it deserves a spot right alongside both The Visit and his iconic Sixth Sense. The writer/director seems to have found his groove again.
Stars: James McAvoy, Anya Taylor-Joy, Betty Buckley, Haley Lu Richardson, Jessica Sula.
Director: M Night Shyamalan
Verdict: 4/5 stars
Update your news preferences and get the latest news delivered to your inbox.