pre-compilation. logic done