basic compile