added smartpointers namespace