diff --git a/BeSafePlus/ViewModels/ActivityHistoryViewModel.cs b/BeSafePlus/ViewModels/ActivityHistoryViewModel.cs
index 1da8524ebe3eb93ab1dcbba938cb3d06e99abeb9..14e2db5d89cb2e36c9f17e61f6ebab131cb00664 100644
--- a/BeSafePlus/ViewModels/ActivityHistoryViewModel.cs
+++ b/BeSafePlus/ViewModels/ActivityHistoryViewModel.cs
@@ -74,9 +74,9 @@ namespace BeSafePlus.ViewModels
                 }
             }
         }
-        private void UpdateSteps(int steps)
+        private async void UpdateSteps(int steps)
         {
-            MainThread.BeginInvokeOnMainThread(() =>
+            await MainThread.InvokeOnMainThreadAsync(async () =>
             {
                 AccumulatedSteps = steps;
 
@@ -101,15 +101,7 @@ namespace BeSafePlus.ViewModels
 
                 TotalStepsThisWeek = WeeklyStepData.Sum(data => data.Steps);
 
-                Task.Run(async () =>
-                {
-                    await LoadMonthlySteps();
-
-                    MainThread.BeginInvokeOnMainThread(() =>
-                    {
-                        OnPropertyChanged(nameof(TotalStepsThisMonth));
-                    });
-                });
+                await LoadMonthlySteps();
 
                 OnPropertyChanged(nameof(WeeklyStepData));
 
@@ -146,7 +138,13 @@ namespace BeSafePlus.ViewModels
         public int TotalStepsThisMonth
         {
             get => _totalStepsThisMonth;
-            set => SetProperty(ref _totalStepsThisMonth, value);
+            set
+            {
+                if (SetProperty(ref _totalStepsThisMonth, value))
+                {
+                    OnPropertyChanged(nameof(TotalStepsThisMonth));
+                }
+            }
         }
         public string WeekLabel => GetWeekLabel();
         public string MonthLabel => GetMonthLabel();
diff --git a/BeSafePlus/Views/ActivityHistoryPage.xaml.cs b/BeSafePlus/Views/ActivityHistoryPage.xaml.cs
index e9cd98cae4b0d6fccacbee9dacde99c2ce12f916..a6be905c0e4eadcc8527887faa5de4b7d9a11d69 100644
--- a/BeSafePlus/Views/ActivityHistoryPage.xaml.cs
+++ b/BeSafePlus/Views/ActivityHistoryPage.xaml.cs
@@ -40,13 +40,17 @@ namespace BeSafePlus
         {
             base.OnAppearing();
 
-            await _viewModel.LoadStepGoal();
+            var loadStepGoalTask = _viewModel.LoadStepGoal();
 
-            await _viewModel.LoadWeeklySteps();
+            var loadWeeklyStepsTask = _viewModel.LoadWeeklySteps();
 
-            await _viewModel.LoadMonthlySteps();
+            var loadMonthlyStepsTask = _viewModel.LoadMonthlySteps();
 
-            _viewModel.AccumulatedSteps = await _viewModel.GetStepCount();
+            var getStepCountTask = _viewModel.GetStepCount();
+
+            await Task.WhenAll(loadStepGoalTask, loadWeeklyStepsTask, loadMonthlyStepsTask, getStepCountTask);
+
+            _viewModel.AccumulatedSteps = await getStepCountTask;
 
             LoadChart();