// Initialize

        public override Task <Unit> InitializeAsync() =>
        ShoppingListRepository.GetWithItems(CurrentAccount)
        .Map(newShoppingList => UpdateShoppingList(newShoppingList))
        .Bind(newShoppingList => RecipeRepository.GetDetails(newShoppingList.RecipeItems.Select(i => i.RecipeId)))
        .Map(details => recipeDetails = details.ToImmutableDictionary(d => d.Recipe.Id))
        .Map(_ => Unit.Value)
        .Execute(environment);