linux support

merge back