I want to leave him but I can't bring myself to it.

We've been together for 3 years. He is mentally abusive. Always saying I'm a piece of shit, calling me a fuckhead, calling me useless, you name it, it's called me it. This morning I cleaned the whole house. I do his washing, I clean up after him. He doesn't have to do anything because I'm always on top of it. He works. Anyway I cooked him lunch, I asked if he can do dishes (it was litteraly 2 plates) he yelled at me saying he shouldn't have to, calling me a piece of shit, it's his day off so why should he clean his own plate. I don't work, I do home duties. I've enrolled into a class and I start next Monday. He yelled at me saying ' it must be nice not having to work and you can't even do dishes' I know, people are going to say to leave him. I've spoken to him last night saying he is mentally abusive, he ask he is sorry, he kissed me and said he will change. I just can't bring myself to leave him.