throw up if someone passes a non-function to done/then/fail