add promise module