     @constructor.removeFromArray(@constructor.jobs, (j) -> j.args.id is @id)
 
     # Create an job that contains everything we'll need to do the work.
-    job = {
-      task: @task,
-      callbacks: [onDidSpellCheck],
-      args: {
-        id: @id,
-        projectPath,
-        relativePath,
+    job =
+      manager: @manager
+      callbacks: [onDidSpellCheck]
+      args:
+        id: @id
+        projectPath: projectPath
+        relativePath: relativePath
         text: buffer.getText()
-      }
-    }
 
     # If we already have a job for this work piggy-back on it with our callback.
     return if @constructor.piggybackExistingJob(job)

    @constructor.startNextJob() if @constructor.jobs.length is 1

  @piggybackExistingJob: (newJob) ->
    if (@jobs.length > 0)
      for i in [0..@jobs.length-1]
        job = @jobs[i]
        if (@isDuplicateRequest(job, newJob))
          job.callbacks = job.callbacks.concat(newJob.callbacks)
          return true
    return false

  @handler: null
  @jobs: []

  constructor: (@manager) ->
    @id = idCounter++

  terminate: ->
