       console.log(new Date().toISOString(), "Processing #{teachers.length} teachers...")
       @state = "Processing #{courseInstances.length} course instances..."
       for teacher in teachers
-        teacherMap[teacher.id] = teacher.geo ? {}
+        teacherMap[teacher._id] = teacher.geo ? {}
 
       @updateLoadingState("Processing #{classrooms.length} classrooms...")
       for classroom in classrooms

      url += "&options[beforeId]=#{beforeId}" if beforeId
      new Promise((resolve) -> setTimeout(resolve.bind(null, Promise.resolve($.get(url))), 100))
      .then (batchResults) =>
        results = results.concat(batchResults)
        if batchResults.length < @batchSize
          @updateLoadingState("Received #{results.length} from #{baseUrl} TOTAL")

      for student in students
        continue unless studentNonHocMap[student._id]
        continue if teacherMap[student._id]
        studentMap[student._id] = {geo: student.geo}

      delete studentNonHocMap[studentId] for studentId in studentNonHocMap # Don't need these anymore

