make more use of System.Win32 or System.Posix