Added some Smart Pointers

Setup some smart pointers, may need to be refactored shortly