try to support linux better