Add defaultFactory, choice