well honey, i kinda know how that goes.
Let me point it out to you from anothers point of view.[mine]
You obviously love her theres no doubt about that, b/c if you didnt you wouldnt be admitting that you sometimes can well, treat her poorly.
Thats defintley not the problem, the problem in my opinion just seems to be that, b/c you guys have been together for so long, you seem to have fallen into a routine, and the fact that you are older than her even if it is only 2 yrs, might give your ego a slight "powertrip" ..You see her as someone that you love and want to protect, and sometimes you might get afraid that b/c you do treat her maybe not as best as she could be treated theres a sense that if she had the chance she might find another guy who will treat her well.
just think about that...you dont want another guy coming into her life and making her think twice about you do you?
she loves you obvisouly or else you guys wouldnt have been comitted for so long. at our age...thats long lol. [im 18 as well]
simple solution...
just start gradually letting her be herself, things maybe you werent so sure about her doing or being..possibly let her do them, let her know that its ok for her to be herself, and you will still love her.
being a young couple trying to be together commitidley takes a lot of work which means alot of compromises on your part as well as hers. im sure there are things she hasnt been to happy with you about, maybe its something you both can work on together.
your not an asshole by any means, your just a b/f being a b/f, theres a thin line between being a good b/f and caring and being an ***. try not to cross that line...you guys obvisouly got something great going. try to keep it up hun...
love Sophie
<3