from what i understand from your post, he's been doing this to you for the past 3-4 years.. sorry if i might sound rude but please give yourself some respect.. your boyfriend clearly doesn't know how to treat you right.. i just can't believe you've endured that kind of treatment from him for the past 3-4 years.. if he's willing to change for the better, he should have done that a long time ago.. but with the duration of how he's tormenting you, as the saying goes, you can't teach an old dog new tricks.. you don't deserve someone like him.. if he can't respect you as his girlfriend, then please give yourself a little respect as a woman and as a person..