Add factory tests; rework zip (closes #11)

This also fixes problems with `map( factory )` by introducing `factoryOne`