public virtual async Task Switch(Type modelType, object args = null, string animName = null)
        {
            if (!NavigationTask.IsCompleted)
            {
                return;
            }
            var item = CurrentLayer.FirstOrDefault(i => i.Model.GetType() == modelType);

            if (item != CurrentItem)
            {
                CurrentModel.Hide();
                CurrentLayer.Remove(item);
                CurrentLayer.Insert(0, item);
                CurrentModel.Show(args: new GalleyArgsWrapper(args));
                await(NavigationTask = SuperView.SwitchAnimate(CurrentView, animName).Execute(true));
            }
        }