build client functional