initiate promise API, sounds cool :)