fix smart compile