 
 private let quick_it: CommitFunc = { description, file, line, closure in
   it(description, file: file, line: line, closure: closure)
-}
-
-extension Scenario: ScenarioBuilder {
-
-  func addStep(_ description: String, file: String, line: UInt) {
-    stepDescriptions.append(description: description, file: file, line: line)
-  }
-
 }
 
 private typealias StepMetadata = (description: String, file: String, line: UInt)

    }
  }

  fileprivate func commit(_ description: String, file: String, line: UInt, closure: @escaping () -> ()) {
    commitFunc(description, file, line, closure)
  }

}

/// After the last step is defined, the scenario is compiled into a Quick example
/// block by looking up the step definitions based on the step names. The test
/// fails if any of the steps are undefined.
public final class Scenario: Preparable, Actionable, ScenarioBuilder {

  private let name: String
  private let file: String
  private let line: UInt
  private let commitFunc: CommitFunc
  private var stepDescriptions: [StepMetadata] = []

  public init(_ name: String, file: String = #file, line: UInt = #line, commit: @escaping CommitFunc = quick_it) {
    self.name = name
