task seperation for compiling and optimizing