Hey, you don't need to be better. If someone is treating you like that, he isn't worth the emotional roller coaster. I don't want to give the impression that three months isn't a big deal, but be thankful this didn't drag on to two years.
You didn't do anything wrong. Guys can have a hard time explaining their feelings and thoughts. It doesn't mean you're a bad girlfriend or you need to be better. It just means he wasn't the right guy for you. Three months is hard to get over, you've put time and effort into starting a relationship. You weren't wrong in ending a relationship that didn't make you happy, but you also have to remember that you aren't going to just "get over it". You will, believe me. But it's going to take time.
Just remember that you haven't done anything wrong and you are not a bad girlfriend. You should never have to make yourself better for a guy. The right person will love you no matter what.