Add promise based approach.