Added error throw on exec error, and callback support to known when we're done.