Implemented non-working visitor pattern.