shared ptr changes