reimplemented SafeVisitor using ast.NodeVisitor ... a little more code, but more readable and using a publicly documented class