Hierarchical finite-state machine