Prefer ownership by unique_ptrs over raw pointers