components know about their state only.
the UI runtime is the one that understands 'state of the tree'