Building a simple MVVM framework