better compiler wrapper