use cross-platform EOL rather than \r\n