start working on clang compatibility