My boyfriend and I have been dating for just over 2 years now, we were best friends in high school for 4 years and I started dating him because I had a bad break up and he was there for me. I am now head over heels in love with him but I feel like our relationship is headed downwards. I feel like he doesn't put a lot of effort into the relationship, he rarely pays me compliments, he talks about other girls a bit and even said the other day that he imagines himself with other types of girls. He's very sarcastic, grumpy a lot of the time (often moody before I even arrive at his house and takes it out on me) and has sex with me then says he feels guilty about it. He doesn't like sleeping in the same room as me (he says it makes him feel uncomfortable) sometimes grumbles a bit about paying for things even though he works full time and I'm at university (I pay for a lot of things too I'm not one of those girls). After all that though, he says he still loves me and can imagine a future with us (although whenever I bring up things like marriage he gets very uncomfortable). He says that I overreact, that I over analyse things and I'm also quite insecure which he struggles a lot with. I'm the jealous type, but I'm also very understanding about a lot of things and I try to think rationally, I may just need a few minutes to sort out my emotions. I'm quite soft, so he gets away with a lot of things but it's because I love him. I've tried sticking up for myself but it ends up with us fighting for days and I get exhausted and give in. Sorry for the essay, I'm just confused and don't know what to do? There are some amazing times that we have together, he's funny, good looking, artistic and sometimes we'll go weeks without a fight but I feel like the bad is outweighing the good and I don't know if I should leave or stay and work on it? Note: we are both 20 so still young but not super young. What are your thoughts?