diff --git a/src/uu/lscpu/src/lscpu.rs b/src/uu/lscpu/src/lscpu.rs
index df39810..df5195f 100644
--- a/src/uu/lscpu/src/lscpu.rs
+++ b/src/uu/lscpu/src/lscpu.rs
@@ -34,11 +34,11 @@ struct CpuInfo {
 }
 
 impl CpuInfo {
-    fn new(field: &str, data: &str, children: Option<Vec<CpuInfo>>) -> Self {
+    fn new(field: &str, data: &str) -> Self {
         Self {
             field: field.to_string(),
             data: data.to_string(),
-            children: children.unwrap_or_default(),
+            children: Vec::new(),
         }
     }
 
@@ -79,29 +79,28 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
 
     let mut cpu_infos = CpuInfos::new();
 
-    let mut arch_info = CpuInfo::new("Architecture", &get_architecture(), None);
+    let mut arch_info = CpuInfo::new("Architecture", &get_architecture());
 
     // TODO: We just silently ignore failures to read `/proc/cpuinfo` currently and treat it as empty
     // Perhaps a better solution should be put in place, but what?
     let contents = fs::read_to_string("/proc/cpuinfo").unwrap_or_default();
 
     if let Some(addr_sizes) = find_cpuinfo_value(&contents, "address sizes") {
-        arch_info.add_child(CpuInfo::new("Address sizes", &addr_sizes, None))
+        arch_info.add_child(CpuInfo::new("Address sizes", &addr_sizes))
     }
 
     if let Some(byte_order) = sysfs::read_cpu_byte_order() {
-        arch_info.add_child(CpuInfo::new("Byte Order", byte_order, None));
+        arch_info.add_child(CpuInfo::new("Byte Order", byte_order));
     }
 
     cpu_infos.push(arch_info);
 
     let cpu_topology = sysfs::CpuTopology::new();
-    let mut cores_info = CpuInfo::new("CPU(s)", &format!("{}", cpu_topology.cpus.len()), None);
+    let mut cores_info = CpuInfo::new("CPU(s)", &format!("{}", cpu_topology.cpus.len()));
 
     cores_info.add_child(CpuInfo::new(
         "On-line CPU(s) list",
         &sysfs::read_online_cpus(),
-        None,
     ));
 
     cpu_infos.push(cores_info);
@@ -110,17 +109,17 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
     // ie. the file might contain multiple sections, each with their own vendor_id/model name etc. but right now
     // we're just taking whatever our regex matches first and using that
     if let Some(vendor) = find_cpuinfo_value(&contents, "vendor_id") {
-        let mut vendor_info = CpuInfo::new("Vendor ID", &vendor, None);
+        let mut vendor_info = CpuInfo::new("Vendor ID", &vendor);
 
         if let Some(model_name) = find_cpuinfo_value(&contents, "model name") {
-            let mut model_name_info = CpuInfo::new("Model name", &model_name, None);
+            let mut model_name_info = CpuInfo::new("Model name", &model_name);
 
             if let Some(family) = find_cpuinfo_value(&contents, "cpu family") {
-                model_name_info.add_child(CpuInfo::new("CPU Family", &family, None));
+                model_name_info.add_child(CpuInfo::new("CPU Family", &family));
             }
 
             if let Some(model) = find_cpuinfo_value(&contents, "model") {
-                model_name_info.add_child(CpuInfo::new("Model", &model, None));
+                model_name_info.add_child(CpuInfo::new("Model", &model));
             }
 
             let socket_count = &cpu_topology.socket_count();
@@ -129,15 +128,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
             model_name_info.add_child(CpuInfo::new(
                 "Thread(s) per core",
                 &(cpu_topology.cpus.len() / core_count).to_string(),
-                None,
             ));
 
             model_name_info.add_child(CpuInfo::new(
                 "Core(s) per socket",
                 &(core_count / socket_count).to_string(),
-                None,
             ));
-            model_name_info.add_child(CpuInfo::new("Socket(s)", &socket_count.to_string(), None));
+            model_name_info.add_child(CpuInfo::new("Socket(s)", &socket_count.to_string()));
 
             if let Some(freq_boost_enabled) = sysfs::read_freq_boost_state() {
                 let s = if freq_boost_enabled {
@@ -145,7 +142,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
                 } else {
                     "disabled"
                 };
-                model_name_info.add_child(CpuInfo::new("Frequency boost", s, None));
+                model_name_info.add_child(CpuInfo::new("Frequency boost", s));
             }
 
             vendor_info.add_child(model_name_info);
@@ -160,9 +157,9 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
 
     let vulns = sysfs::read_cpu_vulnerabilities();
     if !vulns.is_empty() {
-        let mut vuln_info = CpuInfo::new("Vulnerabilities", "", None);
+        let mut vuln_info = CpuInfo::new("Vulnerabilities", "");
         for vuln in vulns {
-            vuln_info.add_child(CpuInfo::new(&vuln.name, &vuln.mitigation, None));
+            vuln_info.add_child(CpuInfo::new(&vuln.name, &vuln.mitigation));
         }
         cpu_infos.push(vuln_info);
     }
@@ -195,7 +192,7 @@ fn calculate_cache_totals(cpus: Vec<sysfs::Cpu>) -> Option<CpuInfo> {
         }
     }
 
-    let mut cache_info = CpuInfo::new("Caches (sum of all)", "", None);
+    let mut cache_info = CpuInfo::new("Caches (sum of all)", "");
 
     for (level, caches) in by_levels.iter_mut() {
         // Cache instances that are shared across multiple CPUs should have the same `shared_cpu_map` value
@@ -215,7 +212,6 @@ fn calculate_cache_totals(cpus: Vec<sysfs::Cpu>) -> Option<CpuInfo> {
                 CacheSize::new(size_total).human_readable(),
                 count
             ),
-            None,
         ));
     }