add createClient function