public List <HierarchicalViewModelBase> LoadModel(HierarchicalViewModelBase parent)
        {
            var          service = new TaxaService(User);
            List <Taxon> model   = null;

            if (parent == null)
            {
                model = service.GetTopLevelTaxa();
            }
            else
            {
                model = service.GetTaxaForParent((parent as TaxonViewModel).TaxaID.Value);
            }

            if (model != null)
            {
                var temp = model.Where((taxon) => {
                    return(_options == LookupOptions.TaxonExcludeAvailableNames ? !taxon.AvailableName.ValueOrFalse() : true);
                }).Select((m) => {
                    return(new TaxonViewModel(parent, m, _explorer.GenerateTaxonDisplayLabel));
                });

                var list = new List <HierarchicalViewModelBase>(temp);
                return(list);
            }

            return(null);
        }