add smart compile