add state cache