 extension Dictionary {
     func mapValues<T>(_ mapper: @noescape (value: Value) throws -> T)
         rethrows -> Dictionary<Key, T> {
-        var mapped: [Key: T] = [:]
-        try forEach { key, value in
-            mapped[key] = try mapper(value: value)
-        }
-        return mapped
+            var mapped: [Key: T] = [:]
+            try forEach { key, value in
+                mapped[key] = try mapper(value: value)
+            }
+            return mapped
     }
 }
 

    public func extract<T : NodeInitializable>(
        path: [PathIndex])
        throws -> [String : T] {
            guard let object = self[path]?.nodeObject else {
                throw NodeError.unableToConvert(node: .null, expected: "\([String: T].self)")
            }

            return try object.mapValues { return try T(node: $0) }
    }


    public func extract<T : NodeInitializable>(
        path: [PathIndex])
        throws -> [String : T]? {
            guard let value = self[path] else { return nil }
            guard let object = value.nodeObject else {
                throw NodeError.unableToConvert(node: value, expected: "\([String: T].self)")
            }
            return try object.mapValues { return try T(node: $0) }
    }

    public func extract<T : NodeInitializable>(
