The Stepfather

The film opens as Grady Edwards (Dylan Walsh) transforms himself in a bathroom. He shaves off his beard, dyes his hair, and removes his brown contact lenses. He goes downstairs with his luggage and fixes himself peanut butter toast and coffee. As he leaves the house, the camera reveals the bodies of his wife and her three children.
Susan Harding (Sela Ward) is shopping in a grocery store with her youngest children where she meets Grady, who introduces himself as David Harris, a man who lost his wife and daughter in a car accident. He charms her, and six months later, they are engaged to be married. Susan's eldest son, Michael (Penn Badgley) returns home from military school and is wary of the situation. David invites him down to the basement, where he has installed locked cabinets, and tries to befriend Michael over tequila shots.
Michael's suspicions start when David uses the wrong name when mentioning his deceased daughter. After Susan says that an elderly neighbor warned her that America's Most Wanted ran a profile on a serial killer that looked like David, David barges into the woman's house and throws her down her basement stairs, breaking her neck.
Susan's ex-husband Jay confronts David angrily about laying hands on his younger son, Sean, after David grabbed the boy roughly for failing to turn down the volume on his video game. He warns Susan that she knows nothing about David. Doubts about David mount further when he quits his job working as a real estate agent for Susan's sister, Jackie (Paige Turco) to avoid displaying a photo ID and other forms of identification.
Later, Jay confronts David about an apparent lie regarding his college history. David clubs him with a vase and suffocates him with a plastic bag. He sends Michael a text with Jay's phone saying that David checked out okay.
When the neighbor woman's body is discovered two weeks later, David tells the family. Michael is alarmed because he overheard David being told by the mailman, who gave less detail than David. While Michael's girlfriend, Kelly (Amber Heard), tries to get him to focus on college applications, he grows more obsessed with the contradictions in David's stories. Kelly tries to grab his attention by saying she is having sex with another guy. Michael, who is obsessed with David's stories, doesn't pay attention, and Kelly leaves.
The situation comes to a head when David intercepts an email from Jackie about hiring an investigator. He then goes to Jackie's house and drowns her in her pool. Determined to discover what was in the locked cabinets, Michael breaks into the basement as Kelly keeps a lookout. In the basement, Michael eventually discovers his dad's body in a freezer. David knocks out Kelly and traps Michael in the basement. The commotion awakens Susan, and he berates her parenting skills and says that he thought she could be "Mrs. Grady Edwards". On Susan's stunned reaction, David grimaces and asks, "Who am I here?"
Susan flees to the bathroom locking herself in. David kicks the door in, shattering the mirror behind it. Susan picks up a shard of the glass mirror, holding it behind her. David grabs her, they struggle and she manages to stab him in the neck with the shard. He falls to the floor, apparently dead. Michael escapes from the basement and finds Kelly. They find Susan in the hallway across from the bathroom, thinking David is dead. Then David approaches from behind and blocks the stairs, chasing all of them into the attic where he and Michael fight. Both fall onto the roof and then off the edge of the roof to the ground, where they lie unconscious.
When Michael wakes up, he finds out he had been in a coma for just over a month. He learns that David is still alive. He fled the scene before the police arrived. The end scene shows David, who has again changed his name to Chris Ames. He is working at a hardware store when he meets a woman (Jessalyn Gilsig) who was shopping with her two sons.

Question: Where does Michael discover his dad's body?
Answer: the freezer