Only you can know for sure if it's too late, and if it IS too late, then you should leave him. I personally don't think that people can really change, so I would suspect that if you stay with him, he will probably fall back into the habits that made you want to leave in the first place. However, everyone is different and every situation is different. If you want to leave, stick to your resolve, and just tell him you are leaving him. It might be wise to have a good friend or family member readily available after you tell him in case you need them to stop things from getting out of hand. Good luck!!