Added interface IVisitable