Migrate from promises to callback