visitor pattern got updated