FileReader = broken, to fix the TODO use `new InputStreamReader(new FileInputStream(f), "UTF-8")` (from http://stackoverflow.com/questions/696626/java-filereader-encoding-issue/696641#696641 ) and also fix the writer