compile properly