added clang ast visitor class