add first version of entityFactory