keep thinking about all the bad things he's done to you rather than the good, weigh your options and ask yourself if you really want to deal with all of it. if you think about it from a sociological perspective, guys like that who keep making excuses for their behavior will continue to do that. so I'm telling you there really is no hope for him to change...guys like that will remain that way. if he abuses you, well, those are the last parts of an abusive cycle. the guy apologizes, wins you back, then does it again.
guys like this should be waving a red flag around constantly, but apparently, girls love them because they know how to speak, but once you're whipped, which you are, they just basically use you and that is that. nothing is going to change so stop making excuses for him, find someone else who will treat you better, and move on with your life without him. I had a girl treat me like utter crap even for the 2 weeks we dated and I dumped her right during the second week...I was happier than ever with her out of my life.
if you obsess over him, as I said, find someone else and make better new memories. you'll find out there is someone else out there who will not treat you like utter crap and actually cares about you...please do not be like most girls with the "in-love" thing. it's just completely stupid...if someone treats you like crap you're supposed to move on, label them as what they are, and enjoy your life cause you only live it once. do you seriously want to die knowing that you spent most of your life hating it because you didn't think you could get any other guy?