declarative modelView state transitions