         return prePrefix + Constant.OutPutPrefix.it + (title.isEmpty ? Constant.emptyTitle : title)
     }
 
-    init(title: String, mark: Mark) {
+    init(title: String, mark: Mark, closure: @escaping () -> Void) {
         self.title = title
         self.mark = mark
+        self.closure = closure
     }
 
     func process(underFocus: Bool, underPending: Bool) {
         self.underFocus = underFocus
         self.underPending = underPending
-    }
-
-    // MARK: TrackedScope Protocol
-
-    func add(_ scope: Scope) {
-        fatalError(I18n.t(.notAllowedInIt("\(scope.type)")))
-    }
-
-    func add(_ step: Step) {
-        fatalError(I18n.t(.notAllowedInIt("\(step.type)")))
-    }
-
-    func add(_ it: It) {
-        fatalError(I18n.t(.notAllowedInIt("it")))
     }
 
     func add(_ expect: Expect) {

        subScopes.append(scope)
    }

    func add(_ expect: Expect) {
        fatalError(I18n.t(.expectOutsideOfIt))
    }

    // MARK: static

    static func execute(_ scopes: [Scope], isSomethingFocused: Bool, level: Int = 0, accumulatedSteps: [Step] = []) -> TestResult {

    }
}

private class It {
    private let title: String
    private let mark: Mark

    let closure: () -> Void

    var expects: [Expect] = []
    var underFocus: Bool = false
