delegate more to visitor