like now uses llvm command line infrastructure