not using std pointer wrappers anymore