relying on the OS default produces encoding bugs on Windows - **Always use a `with` statement** — this guarantees the file is closed even if an exception occurs