make it portable to linux