an MVVM calculator