Cursing at me?

Whenever me and my bf get in a fight he calls me really mean names. We been together two years and I do so much for him. I legit go to work and come home to him. I accused him of lying about something because i’ve caught him in a fair share of lies all around, and he legit called me a ‘dirty’ hoe and slut etc and much more very mean things. I think i’ve about had it because i’m not a slut and slept with THREE people including him and I was dating them all for 5 months plus. And on top of it when I ask how i’m dirty he’ll say oh I don’t mean It I mean you do me dirty by mentioning stuff. He tells me i’m a stupid bitch fucking nothing to him etx and then he’ll say he’s sorry and didn’t mean it. I’m just about done. Our lease ends in January I believe and I just want advice... Do guys typically talk this way when angry!? I literally thought he was the one I even wanted to have a kid with him and marry this man but maybe God has other plans as to why it hasn’t happened. No negative comments...😢 I also recently lost my dad he got cancer because he was a NYPD for 9/11 and my mom is battling a big lawsuit for that so i’m under lots of stress & im only 21.