[upd] visitor pattern