diff --git a/Cargo.toml b/Cargo.toml
index d750a8ce506be70e2c0714cd8b71efc44d528ece..56e9d967b0a2af4db3d9b8928aa1839106ccb035 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -31,7 +31,7 @@ version = "0.29.0"
 default-features = false
 
 [features]
-default = ["serial_debug"]
+default = ["serial_debug", "acpi"]
 acpi = []
 doc = []
 graphical_debug = []
diff --git a/src/acpi/aml/namespace.rs b/src/acpi/aml/namespace.rs
index c420c9dbd6248e3ff6f0e1c7fc2a6e0b7237907a..871639868a94768f2fd6631caf6e156ce7d02f5d 100644
--- a/src/acpi/aml/namespace.rs
+++ b/src/acpi/aml/namespace.rs
@@ -14,7 +14,7 @@ use super::AmlError;
 
 use crate::acpi::{SdtSignature, get_signature_from_index, get_index_from_signature};
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub enum FieldSelector {
     Region(String),
     Bank {
@@ -28,7 +28,7 @@ pub enum FieldSelector {
     }
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub enum ObjectReference {
     ArgObj(u8),
     LocalObj(u8),
@@ -36,7 +36,7 @@ pub enum ObjectReference {
     Index(Box<AmlValue>, Box<AmlValue>)
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub struct Method {
     pub arg_count: u8,
     pub serialized: bool,
@@ -44,14 +44,14 @@ pub struct Method {
     pub term_list: Vec<u8>
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub struct BufferField {
     pub source_buf: Box<AmlValue>,
     pub index: Box<AmlValue>,
     pub length: Box<AmlValue>
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub struct FieldUnit {
     pub selector: FieldSelector,
     pub connection: Box<AmlValue>,
@@ -60,19 +60,19 @@ pub struct FieldUnit {
     pub length: usize
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub struct Device {
     pub obj_list: Vec<String>,
     pub notify_methods: BTreeMap<u8, Vec<fn()>>
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub struct ThermalZone {
     pub obj_list: Vec<String>,
     pub notify_methods: BTreeMap<u8, Vec<fn()>>
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub struct Processor {
     pub proc_id: u8,
     pub p_blk: Option<u32>,
@@ -80,7 +80,7 @@ pub struct Processor {
     pub notify_methods: BTreeMap<u8, Vec<fn()>>
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub struct OperationRegion {
     pub region: RegionSpace,
     pub offset: Box<AmlValue>,
@@ -89,13 +89,14 @@ pub struct OperationRegion {
     pub accessed_by: Option<u64>
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub struct PowerResource {
     pub system_level: u8,
     pub resource_order: u16,
     pub obj_list: Vec<String>
 }
 
+#[derive(Debug)]
 pub struct Accessor {
     pub read: fn(usize) -> u64,
     pub write: fn(usize, u64)
@@ -110,7 +111,7 @@ impl Clone for Accessor {
     }
 }
 
-#[derive(Clone)]
+#[derive(Clone, Debug)]
 pub enum AmlValue {
     None,
     Uninitialized,
@@ -136,10 +137,6 @@ pub enum AmlValue {
     ThermalZone(ThermalZone)
 }
 
-impl Debug for AmlValue {
-    fn fmt(&self, _f: &mut Formatter) -> Result<(), Error> { Ok(()) }
-}
-
 impl AmlValue {
     pub fn get_type_string(&self) -> String {
         match *self {
diff --git a/src/arch/x86_64/device/ioapic.rs b/src/arch/x86_64/device/ioapic.rs
index 2897ed9227853097f39431c9959cf470d918e7d5..d2966789ec1f8a4a8a40ecb417471355ffa5c316 100644
--- a/src/arch/x86_64/device/ioapic.rs
+++ b/src/arch/x86_64/device/ioapic.rs
@@ -306,6 +306,11 @@ pub unsafe fn init(active_table: &mut ActivePageTable) {
                 _ => (),
             }
         }
+
+        let namespace_guard = crate::acpi::ACPI_TABLE.namespace.read();
+        for (k, v) in namespace_guard.as_ref().unwrap().iter() {
+            println!("{} = {:?}", k, v);
+        }
     }
     println!("I/O APICs: {:?}, overrides: {:?}", ioapics(), src_overrides());