removed smartpointer.h