now shared_ptr is working as intended, no need to add specifications for the non member since they already call the right shared_ptr overload!