implemented PersonFactory