polishing new/delete overloads to work with c++98 and c++11 alike

* I also implemented exception handling