basic compilation