What do I do? My boyfriend snaps at me constantly and always brings up the past?

I have to admit that when my boyfriend and I got together we probably werent ready. we were both addicted to drugs and we both had a lot going on in our lives. For the first 3 mths I was detached and off with guy friends doing drugs. I never cheated but I know I made him feel horrible. I was away getting clean and he was suppose to be to but he was screwing around, partying and hanging with girls. he said he doesn't care he wanted to be spiteful. so after all of this we are together and we areclean. he has anger problems he's always accussing me of being up to something. Eiether through the internet or texts. he's paranoid. He throws the past in my face. I think he does it because I don't do it back to him. He always has a reason for calling me horrible names and punching holes in the walls. I think he has a disorder. when I try to talk to him he loses it and turns it around on me. I can't deal with his anger all the time. he is a real psycho, but he has a good heart. He will yell and talk over people, talks to himself, lies, he always thinks I'm lying and he distrusts everyone. he's so jealous, to the point where he will call my girlfriends horrible names and tell me why they are so bad. I don't know what to do anymore. I guess the worst part of it all is how he snaps and its for nothing, no one is allowed to have opinions cause he's always right.
What do I do? My boyfriend snaps at me constantly and always brings up the past?
Post Opinion