public CounterViewModel()
 {
     title.Value  = "last value: ---";
     Title        = title.ToReadOnlyReactiveProperty();
     CounterValue = counter
                    .ObserveProperty(x => x.Value)
                    .Select(x => x.ToString())
                    .ToReadOnlyReactiveProperty();
     Increment.Subscribe(_ => counter.Increment());
     Decrement.Subscribe(_ => counter.Decrement());
     Reset.Subscribe(async _ =>
     {
         // Async Sample
         var count = await Task.Run(() =>
         {
             Task.Delay(1500).Wait();
             return(CounterValue.Value);
         });
         title.Value = $"last value: {count}";
         counter.Reset();
     });
 }