public object Clone()
    {
        var clone = ObjectSupport.CloneFromCopyConstructor(this);

        if (clone == null)
        {
            throw new ApplicationException("Hey Dude, you didn't define a copy constructor");
        }
        return(clone);
    }