return promise from run