Adjust run to use promises.