Added option to choose Promise library