My own shared_ptr implementation

Very similar to STL interface