proper compilation