client is functional