bug fix, add linux support