diff --git a/src/lib.rs b/src/lib.rs
index 6556c97..3f9d57a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -242,11 +242,11 @@
 
 impl Term {
     pub fn intern(string: &str) -> Term {
-        Term(string.into())
+        Term(imp::Term::intern(string))
     }
 
     pub fn as_str(&self) -> &str {
-        &self.0
+        self.0.as_str()
     }
 }
 
diff --git a/src/stable.rs b/src/stable.rs
index 0a439ed..8bf3a9f 100644
--- a/src/stable.rs
+++ b/src/stable.rs
@@ -7,7 +7,6 @@
 use std::fmt;
 use std::iter;
 use std::marker::PhantomData;
-use std::ops;
 use std::rc::Rc;
 use std::str::FromStr;
 use std::vec;
@@ -398,19 +397,15 @@
 
 thread_local!(static SYMBOLS: RefCell<Interner> = RefCell::new(Interner::new()));
 
-impl<'a> From<&'a str> for Term {
-    fn from(string: &'a str) -> Term {
+impl Term {
+    pub fn intern(string: &str) -> Term {
         Term {
             intern: SYMBOLS.with(|s| s.borrow_mut().intern(string)),
             not_send_sync: PhantomData,
         }
     }
-}
 
-impl ops::Deref for Term {
-    type Target = str;
-
-    fn deref(&self) -> &str {
+    pub fn as_str(&self) -> &str {
         SYMBOLS.with(|interner| {
             let interner = interner.borrow();
             let s = interner.get(self.intern);
@@ -423,7 +418,7 @@
 
 impl fmt::Debug for Term {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        f.debug_tuple("Term").field(&&**self).finish()
+        f.debug_tuple("Term").field(&self.as_str()).finish()
     }
 }
 
diff --git a/src/unstable.rs b/src/unstable.rs
index 1c4b834..b6f5670 100644
--- a/src/unstable.rs
+++ b/src/unstable.rs
@@ -1,7 +1,6 @@
 use std::ascii;
 use std::fmt;
 use std::iter;
-use std::ops;
 use std::str::FromStr;
 
 use proc_macro;
@@ -269,16 +268,12 @@
 #[derive(Copy, Clone)]
 pub struct Term(proc_macro::Term);
 
-impl<'a> From<&'a str> for Term {
-    fn from(string: &'a str) -> Term {
+impl Term {
+    pub fn intern(string: &str) -> Term {
         Term(proc_macro::Term::intern(string))
     }
-}
 
-impl ops::Deref for Term {
-    type Target = str;
-
-    fn deref(&self) -> &str {
+    pub fn as_str(&self) -> &str {
         self.0.as_str()
     }
 }
