Equality check via visitor
refactoring
refactoring