Any dynamic DOM should be a simple function of application state