using weak_ptr in some places now.