Interactive data-driven views, MVVM and MVP, built on top of JsRender templates