State implementation
update