         var titleSection = SectionStruct(headerTitle: "Title", items: [])
         var descriptionSection = SectionStruct(headerTitle: "Description",
                                                items: [])
+        var metadataSection = SectionStruct(headerTitle: "Meta data",
+                                            items: [])
+
         if let command = self.commandStruct {
             if let targetID = command.targetID {
                 targetIdSection.items.append(targetID)

            if let description = command.commandDescription {
                descriptionSection.items.append(description)
            }
        }

        sections += [targetIdSection, titleSection, descriptionSection]
    }

    override func tableView(

            }
        }
        // the defaultd schema and schemaVersion from predefined schem dict
        let schema: String? = (self.view.viewWithTag(200) as? UITextField)?.text
        let schemaVersion: Int?
        if let schemaVersionTextFiled = self.view.viewWithTag(201) as? UITextField {
            schemaVersion = Int(schemaVersionTextFiled.text!)!
        } else {
            schemaVersion = nil
        }
        let targetID: String? =
          (self.view.viewWithTag(202) as? UITextField)?.text
        let title: String? = (self.view.viewWithTag(203) as? UITextField)?.text
        let description: String? =
          (self.view.viewWithTag(204) as? UITextView)?.text
        let metadata: Dictionary<String, AnyObject>?
        if let text = (self.view.viewWithTag(205) as? UITextView)?.text {
            metadata = try? NSJSONSerialization.JSONObjectWithData(
              text.dataUsingEncoding(NSUTF8StringEncoding)!,
              options: .MutableContainers) as! Dictionary<String, AnyObject>
        } else {
            metadata = nil
        }

        if self.delegate != nil {
            delegate?.saveCommands(schema!,
