Example of visitor pattern.