added state_event method support