Can we split this out into several visitors rather than one-to-rule-them-all?