always compile first