private List<GpsRecordAnnotation> readGpsFixesFromFile(
     FileReader fileReader, String csvFileName) {
   List<GpsRecordAnnotation> results = new LinkedList<GpsRecordAnnotation>();
   CsvBeanReader beanReader = new CsvBeanReader(fileReader, CsvPreference.STANDARD_PREFERENCE);
   try {
     String[] headers = beanReader.getHeader(true);
     if (hasIncorrectHeaders(headers)) {
       closeReaders(fileReader, beanReader);
       throw getUnableToReadFileExceptionCauseOfHeaders(csvFileName);
     }
     getGpsFixesFromReader(results, beanReader, headers);
     closeReaders(fileReader, beanReader);
   } catch (IOException | NullPointerException e) {
     throw getUnableToReadFileExceptionCauseUnknown(csvFileName, e);
   }
   return results;
 }