added clang support