actions, states, base logic