I need some advice please

My name ia Gabriela, i'm 20 yrs old and i've been dating my boyfriend for a year and a half aprox. I'm halfway in my college degree (Communications & Advertising) and he and is about to start his own business. Before speaking about the flaws and struggles i must mention he has been a really caring and helpful man, he's there for me when no one else does, he sacrificies money and time when i need, he's the same way with my family and he has proved that he is inconditional. Now, the thing that has been bugging me the whole time: since we started dating i found out he spoke to plenty of women (he even denied he was dating me), he changed his phone password very frequently, he deleted all of his chats, at first he wasn't into going out to public places with me (back then i didn't understand why, now i do), etc. After a few months in that situation, i finally confronted him and broke up with him for the first time, he asked me for another chance and i accepted, he promised to change and improve. After that things were apparently going on well until i found out he was constantly talking to his ex gf behind my back. He saved her messages in his iphone notes and changed her name. The day i found out was the day of his birthday, it was almost midnight and i went to his house to give him the presents i bought for him, when i walked into his room he was sleeping with his phone on his hand and right at the moment y took it a message from his ex showed up, i woke him up and asked him what the hell was that and ha reacted very violent, grabbed the phone ans threw all the presenta back at me and told me to leave. I left obviously, crying my heart out with all the expensive things i bought for him, when i came back home i sent him a message telling him that was the end. Aproximately 2 days later he came to my place and we went to a coffeeshop to talk about what happened and he was all arrogant like blaming me and telling me i was overeacting. Somehow we talk it out and he again promised to change. Then again in december, he went to his hometown and i stayed in mine, one morning i recieved an anonymous email with some screenshots from a coversation he had with a random girl that they were going to meet, he denied and said they were just friends. Once again, things were quite right for a few months until the very precise valentines day this year.I went over to his place before he came from work with dinner i made for both, i waited for him for about 1 hour and when he came (he didnt expect me there) he was talking with some random girl and i found out he had been talking to her before. I exploded and try to leave but he closed all the doors and wouldn't let me out. I literally had to run away. After that we were off for a few days, then we "worked it out" again. Since that valentines day issue we haven't had any more of that kind of fights, but i swear all of that haunts me everyday and makes me think if being with him is right. I've never found out about sexual cheating (he was my first time and we are sexually active) but i'm almost sure he has. Since all of that happened i've changed, i'm insecure about the relationship, im no longer loving and caring (at least not like i was before), he annoys me and stresses me out very easily. On the other hand, he has changed, he is more committed, he spends more time with me, he tells me everyting, he is more affective, etc. I have so many doubts, did he really cheat on me? Why did he do that? Has he really changed? When will he disappoint me again? Is it right for me to be with him? I love him and i know he loves me too, but this is driving mw crazy and makes me really sad sometimes. Can anyone give me some advice?