ported all challenge factories (untested)