updated to compile with clang