- changed factory to pointer