using promise in run method as well