Can't this just return `i` and the test call `defer i.Stop()`? It seems a bit silly to require the callback when Go has `defer`.