Has this ever happened to you? You have crafted the most beautiful UI that has all the right information arranged in the most elegant way, when suddenly, the user clicks around in the most unexpected way and before you know it the UI and application states are two worlds apart. Then you need to build your UI in a declarative way and leave the tedious details of making this declaration come alive to the machine.