client side impl and file utility