main compiles