finiteStateDiagram