Prefer return over exit.

return calls destuctor for every object before exiting. files are close,
       pointers are freed. all the good stuff.
Memory management
Memory Leak Fixed.
Forgot that todo is a pointer. return only clears local refrences.
Cleanup Bug Fixed. Erase Bug fixed. You should not rely on user to input the correct number, if else all the way
Merge pull request #16 from ParthKolekar/master

Memory management fixed.