       specStatus = .Unknown
 
       let block = { () -> () in
-        self.runSpec(SpecBox(spec, self))
+        self.runSpec(SpecBox(spec))
       }
 
       let timeout: NSTimeInterval = 2; // 2 seconds in the future

    exit(hasFailure ? 1 : 0)
  }

  func prepareForSpec(spec: Spec, _ runner: SpecRunner) {
    // Silence assertions on this thread
    RSilentAssertionHandler.setup()

    let className = getClassNameOfObject(spec as! AnyObject)

    currentGroup      = Group(className)
    runner.specStatus = .Passed
  }

  @objc func runSpec(specBox: SpecBox) {
    let spec   = specBox.spec
    let runner = specBox.runner

    prepareForSpec(spec, runner)

    // Process the definitions
    spec.spec()


@objc class SpecBox {
  let spec: Spec

  init(_ aSpec: Spec) {
    spec = aSpec
  }
}

