compile wrapper