How do I migrate to a CustomNavigationItem from a ICustomNavigationItem?

Basically, I implemented the same ICustomNavigationItem based on the Polling app. 
So, the Obsolete message was to use CustomNavigationItem, which would be changing the base class, so I don't think that's right.. 

here's the interface. 

namespace Telligent.Evolution.Extensibility.UI.Version2
{
    [Obsolete("Use the Version3 CustomNavigationItem class instead.", false)]
    public interface ICustomNavigationItem
    {
        ICustomNavigationPlugin Plugin { get; }
        string Label { get; }
        string Url { get; }
        Guid UniqueID { get; }
        ICustomNavigationItem[] Children { get; set; }
        string CssClass { get; }
        ICustomNavigationItemConfiguration Configuration { get; }

        bool IsSelected(string currentFullUrl);
        bool IsVisible(int userID);
    }
}


the big difference is the "IsSelected" and the "IsVisible"  are callbacks.   do we still use the polling example? is there an example of how to use the CustomNavigationItem?

namespace Telligent.Evolution.Extensibility.UI.Version3
{
    public class CustomNavigationItem
    {
        public CustomNavigationItem();

        public Func<string> DefaultLabel { get; set; }
        public Func<string> DefaultDescription { get; set; }
        public virtual string DefaultAvatarUrl { get; set; }
        public virtual string Url { get; set; }
        public virtual string CssClass { get; set; }
        public CustomNavigationItemIsVisibleCallback IsVisible { get; set; }
        public CustomNavigationItemIsSelectedCallback IsSelected { get; set; }
    }
}