MVVM library with focus on writing clean ViewModels