diff --git a/cobra/core/Object.py b/cobra/core/Object.py
index <HASH>..<HASH> 100644
--- a/cobra/core/Object.py
+++ b/cobra/core/Object.py
@@ -66,9 +66,6 @@ class Object(object):
     def __contains__(self, x):
         return self.id.__contains__(x)
 
-    def __iter__(self):
-       return list(self.id).__iter__()
-
     def __getitem__(self, index):
         return self.id[index]
     
@@ -76,7 +73,7 @@ class Object(object):
         return self.id[i:j]
     
     def __repr__(self):
-        return repr(self.id)
+        return "<%s %s at 0x%x>" % (self.__class__.__name__, self.id, id(self))
 
     def __str__(self):
         return str(self.id)
core.Object has __repr__ and not __iter__

The __repr__ now returns <CLASS ID 0xMEMORY_LOCATION> so it is clear if
an entity is a string id for a reaction or a reaction itself from the
__repr__. This fixes gh#<I>

The lack of __iter__ makes it easy to check for lists of core.Object
using duck-typing instead of explicitly using isinstance