added non-windows support