Uses sharer_pointers instead of raw pointers.

In order to inforce a safe code standard. And avoid memory leaks.