Project restructured: separated complier, launcher and common libraries