declaration visitor