removed custom shared pointer