made client singleton