ENH: More exception feedback.
ENH: Now accepts arbitray utility & production functions.
No error checking yet though.