add set_state