fn time
state store
state machine
more structures and explain