decoupled state from app, state self manages.
test coverage