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; }