visit takes an argument