pre compiling