added linux compatiblity