scoped_ptr is enough imo