diff --git a/core/platform/src/allows/allowed.rs b/core/platform/src/allows/allowed.rs
index 4d66c2b..386562f 100644
--- a/core/platform/src/allows/allowed.rs
+++ b/core/platform/src/allows/allowed.rs
@@ -65,21 +65,7 @@
 }
 
 impl<'b, T: crate::AllowReadable + Copy + 'b> Allowed<'b, T> {
-    pub fn replace(&self, value: T) -> T {
-        let current = unsafe { core::ptr::read_volatile(self.buffer.as_ptr()) };
-        unsafe {
-            core::ptr::write_volatile(self.buffer.as_ptr(), value);
-        }
-        current
-    }
-
     pub fn get(&self) -> T {
         unsafe { core::ptr::read_volatile(self.buffer.as_ptr()) }
     }
 }
-
-impl<'b, T: crate::AllowReadable + Copy + Default + 'b> Allowed<'b, T> {
-    pub fn take(&self) -> T {
-        self.replace(T::default())
-    }
-}
diff --git a/core/platform/src/allows/allowed_tests.rs b/core/platform/src/allows/allowed_tests.rs
index f1f0c08..1859dd1 100644
--- a/core/platform/src/allows/allowed_tests.rs
+++ b/core/platform/src/allows/allowed_tests.rs
@@ -84,19 +84,6 @@
 }
 
 #[test]
-fn replace() {
-    let mut buffer = 1;
-    let (allowed, kernel_ptr) = KernelPtr::allow(&mut buffer);
-    assert_eq!(kernel_ptr.get(), 1);
-
-    // Simulate the kernel replacing the value in buffer.
-    kernel_ptr.set(2);
-    let returned = allowed.replace(3);
-    assert_eq!(returned, 2);
-    assert_eq!(kernel_ptr.get(), 3);
-}
-
-#[test]
 fn get() {
     let mut buffer = 1;
     let (allowed, kernel_ptr) = KernelPtr::allow(&mut buffer);
@@ -109,16 +96,3 @@
     assert_eq!(allowed.get(), 2);
     assert_eq!(kernel_ptr.get(), 2);
 }
-
-#[test]
-fn take() {
-    let mut buffer = 1;
-    let (allowed, kernel_ptr) = KernelPtr::allow(&mut buffer);
-    assert_eq!(kernel_ptr.get(), 1);
-
-    // Simulate the kernel replacing the value in buffer.
-    kernel_ptr.set(2);
-    let returned = allowed.take();
-    assert_eq!(returned, 2);
-    assert_eq!(kernel_ptr.get(), 0);
-}
