added various names schemes to smart_ptr