The Perfect Man

Single mother Jean (Heather Locklear) relocates every time she gets her heart broken by another guy, much to the dismay of her teenage daughter, Holly (Hilary Duff). Holly devises a plan to invent a secret admirer for her mother, so she'll be happy and not have to relocate anymore. Holly overhears her friend Amy's (Vanessa Lengies) uncle Ben (Chris Noth) ordering flowers for a woman, and decides to use his advice on women (which she acquires by telling him she needs help for a school project on romance). Following Ben's advice, she sends her mother orchids and other gifts and love notes, and is soon communicating with her mother as this fictitious admirer (who Holly names Ben) via the internet. As her mother becomes more interested, Holly has to find a photo of this admirer. She sends one of the real Ben, and then devises a reason why they can't meet in person, claiming he is working in China. While she is developing the online romance between her mother and fake Ben, and preventing her mother and the real Ben from meeting in person, she finds herself drawn to a cute, artistic boy in her class, Adam (Ben Feldman), but is unwilling to get close to anyone due to her history of being uprooted and having to say goodbye so often.
As the charade continues, and as Holly spends more time with Ben while picking his brain for romance tips, she slowly begins to see qualities in Ben which make her believe he is her mother's 'perfect man.' Unfortunately there is no way her mother can ever meet the real Ben without Holly's plan being exposed. Holly asks help from Adam to disguise as Ben in the telephone and break up with Jean. But he fails, as he is revealed to be harboring feelings for Holly as well, in effect telling Holly's mother the opposite of what is planned.
Next day at school, Adam admits his feelings for Holly by kissing her. That night, Lenny (Mike O'Malley), a man who is infatuated with Jean, proposes to her and she replies with a 'maybe'. Holly, in an act of desperation, then disguises herself as Ben's secretary and arranges a meeting between Ben and her mom. Next day, when Holly mistakenly thinks Ben is marrying someone else, she disrupts the wedding to tell Ben he should be with her mother, not knowing he was there because the bride is his dear friend and he was catering the wedding. A disappointed Ben follows her out and she admits the full story. Holly then goes to the meeting place and admits the whole ruse to Jean, who seems to take it terribly. Days pass by and Holly and her mom maintain a cold relationship, and Holly is offended by her interpretation of Adam's drawing of "Princess Holly." Holly begs Jean for them to move again. Her mother is humiliated and wants to stay, but Holly tells her to leave this once for Holly. She says that she always has to move for her mom. Her mom can't argue with that so they start to pack. Adam, for what he thinks is the last time, goes to Holly's home and gives Holly's mom his drawing, commenting that the drawing has another side, which turns out to be Adam telling Holly that he'll always be there for her.
Touched, Jean logs onto the internet using Holly's screen name and talks to Adam. Adam, thinking it's Holly, says that her mom is setting a bad example, getting up and leaving when things get bad. Jean is deeply moved by this and decides to stay, finding a new job and trying to rebuild her life without running away. She also apologizes to her daughter and tells her to look at the other side of the drawing, making Holly happy.
Meanwhile Ben is inspired by what Holly told him about her mother, and with Holly's help, Jean and Ben finally meet and Jean finds her 'perfect man' at last. Holly is on the road to her perfect man as well since she has some stability in her life and finally opens up and admits her feelings for Adam. At the end, Adam and Holly go to their first school dance together.

Question: Who give Holly romantic advice?
Answer: Ben