improve linux compatibility