work on client threads