updated for clang