Add visitor pattern.