adds promises support