create separate single pointer version