pass separate compiling