   var invalidated = false
   var mainDiv = NCDiv()
 
-  public func start(fn: (inout div: NCDiv) -> Void) {
+  public func start(fn: (inout div: NCDiv) throws -> Void) throws {
     Signal.trap(Signal.INT, ncIntSignalHandler)
     Signal.trap(SIGWINCH, ncWinchSignalHandler)
 


  public init() { }

  public mutating func span(args: Any..., fn: ((inout NCSpan) -> Void)? = nil) {
    var span = NCSpan()
    span.addArgs(args)
    if let af = fn {
      af(&span)
    }
    children.append(span)
  }

    addArgs(args)
  }

  public mutating func div(fn: (inout NCDiv) throws -> Void) throws {
    var d = NCDiv()
    try fn(&d)
    children.append(d)
  }

  public mutating func addArgs(args: [Any]) {
    for v in args {
      if v is String {
