use auto_ptr instead of scoped_ptr?