be more robust against subtle differences between win/lin
put the special increment case into its own method, so skipping it is easier