remove resolve and reject. add lazy