closes #20; still needs copy work in challenge.process.apply