made the shared ptr class a c++11 feature because of variadic template parameters