Throws if a step is given something other than a function
Bump
Rework function turn and argument passing