Allow for multiple runs
Add onStart and onComplete callbacks