incorporating my smart ptrs/cleaning ptr copies