large expansion that completes the former TODO list, supports input/output data formats, separate filter/map/reduce steps, and custom exception handling