Code cleanup
Use nullptr for std::shared_ptr and unique_ptr default parameter