Having trouble with this one. Do we want to create a third callback called `complete` which is passed which would trigger this event? That's the cleanest way I can think of. If we did that we could also add a complete option.