Better enforced visitor pattern.