A Typescript MVVM framework