This could have been as crass and freewheelingly fun in spots as "Bad Santa" was, but the script is a little too safe and flatline, and while there are bits of good R-rated dialogue and hijinks, it's just not bold enough to sustain such a consistent snarky tone throughout the running time. Plus the characters are under-developed, which lessens the impact of the various subplots throughout the film. The motivation for Elizabeth Halsey (Cameron Diaz) for shaping up as a teacher is overwhelmingly shallow, it's tough to really root for or against her, so that hurts the film. Though Lucy Punch, Halsey's foil, almost steals the movie from Diaz. Justin Timberlake pretty much sleep-walks through the film, while Jason Segal plays it fairly straight. I give it 2.5 stars, or a grade of C+.