add clientState method