Not using pointers now, std::shared_ptr?