remove special cases & stay true to visitor