Try this visitor thing