defines should go before includes