use a ValueFactory instead of new keyword