new compilation architecture