diff --git a/tomlkit/check.py b/tomlkit/check.py
deleted file mode 100644
index 6d9327a..0000000
--- a/tomlkit/check.py
+++ /dev/null
@@ -1,12 +0,0 @@
-def is_tomlkit(v):
-    from .container import Container
-    from .container import OutOfOrderTableProxy
-    from .items import Item as _Item
-
-    if isinstance(v, _Item):
-        return True
-    if isinstance(v, Container):
-        return True
-    if isinstance(v, OutOfOrderTableProxy):
-        return True
-    return False
diff --git a/tomlkit/container.py b/tomlkit/container.py
index 5b03d5e..cca9f04 100644
--- a/tomlkit/container.py
+++ b/tomlkit/container.py
@@ -10,7 +10,6 @@
 
 from ._compat import decode
 from ._utils import merge_dicts
-from .check import is_tomlkit
 from .exceptions import KeyAlreadyPresent
 from .exceptions import NonExistentKey
 from .exceptions import TOMLKitError
@@ -53,7 +52,7 @@
             if k is None:
                 continue
 
-            if not isinstance(k, str):
+            if isinstance(k, Key):
                 k = k.key
 
             if isinstance(v, Item):
diff --git a/tomlkit/items.py b/tomlkit/items.py
index 7bf88f6..ca6878c 100644
--- a/tomlkit/items.py
+++ b/tomlkit/items.py
@@ -27,7 +27,6 @@
 from ._compat import decode
 from ._utils import CONTROL_CHARS
 from ._utils import escape_string
-from .check import is_tomlkit
 from .exceptions import InvalidStringError
 from .toml_char import TOMLChar
 
@@ -1091,7 +1090,7 @@
     def unwrap(self) -> str:
         unwrapped = []
         for v in self:
-            if is_tomlkit(v):
+            if isinstance(v, Item):
                 unwrapped.append(v.unwrap())
             else:
                 unwrapped.append(v)
@@ -1343,16 +1342,12 @@
 
     def unwrap(self):
         unwrapped = {}
-        for k in self:
-            if is_tomlkit(k):
-                nk = k.unwrap()
-            else:
-                nk = k
-            if is_tomlkit(self[k]):
-                nv = self[k].unwrap()
-            else:
-                nv = self[k]
-            unwrapped[nk] = nv
+        for k, v in self.items():
+            if isinstance(k, Key):
+                k = k.key
+            if isinstance(v, Item):
+                v = v.unwrap()
+            unwrapped[k] = v
 
         return unwrapped
 
