updated, now the pointers point to a constructor