updated with clang