Is this controlling?LONG POST

Please read all of this. I have Bipolar disorder, anxiety, depression, ednos, I struggle with addiction, I can be very manipulative, and I cheated on him last year because we were in a bad spot in our relationship and we both acknowledged that it was both of our faults that it happened, I have lied to him in the past about drug use and other things, so I know he has trust issues. When we argue he is calm, I am the one who yells and cusses. Please take the time to read over this and let me know what your opinions are. Thank you.

When he asks me where I am and I tell him, he will drive by to make sure that I am really there and not lying to him

He has told me before that he thinks I'm only with him because I have low self esteem

He thinks I am going to leave him whenever I talk about losing weight and having more confidence in myself (but yet he always calls me beautiful?)

Sometimes I feel like he is only interested in me for sex, and one day I woke up to him touching me "down there" while I was asleep. (He claimed he wasn't aware of what he was doing because he was sleeping)

He threatens to leave if I stay friends with my best friend of 6 years (he doesn't like her, she doesn't like him, they never have)

He gets mad when I wear shorts in public

He goes through my phone when I'm sleeping

He won't let me have any social media

When I had social media, he got mad when I had male followers, or when males liked my pictures

I have to ask him permission to buy something & if I don't ask first he gets mad (he is the only one that works)

He sends me "?????"s if I don't reply to his text fast enough, and if I don't reply to that fast enough he will call me until I answer the phone

He makes me feel bad for not wanting to spend time with him after HE upset ME

Every argument we have always ends up with me admitting I was wrong and everything was my fault, even if it wasn't

I have a curfew, I have to be home from whatever I was doing before he gets home from work or else he gets very upset and makes me feel bad about it

He watches my gas gage to keep tabs on how much ive been driving then questions me about it (he pays for my gas)

I feel like I am a teenager sneaking around behind my parents back. He acts like my father, not my boyfriend and when I tell him that we argue

When he works, he wants me to come to every break he has that day and gets upset if I don't and makes me feel bad about it

I have a friendship tattoo on my ring finger and he is serious about having it cut off of me before he will propose to me, he claims that is HIS finger

He texts me and asks "where are you?" At least 5 times a day when he is at work

Okay, we have been together for 2 years and I love him so much. His mother is controlling and I think he may have learned it from her.

But he does have amazing attributes.

I used to be addicted to drugs and hated my family, he got me off of drugs and brought me close to my family again.

He encouraged me to further my education when I didn't want to.

He pays for my bills (car payment, gas, phone bill, food)

He makes sure I get my medicine, I don't have insurance so he pays full price for it every month

He is ALWAYS very calm when we argue, he doesn't yell or cuss or raise a hand to me, and he always tries to explain why this happened and how do we fix it.

He is very respectable to my family, does anything for anybody, and has never disrespected anybody in my family

He sticks up for me when his mother talks bad about me (she is controlling over him)

He understands my mental illnesses and encourages me to find better coping strategies than what I used to use (I used to cut, do drugs, run away, drink)

Please let me know honest opinions, and if you have any advice it would be greatly appreciated.

I don't know what to do because everytime I tell him that he hurts me, he turns around and puts the blame on me. Somebody help!!!!