use client promise creator