Index: src/AtomIdSet.cpp
===================================================================
--- src/AtomIdSet.cpp	(revision 57f7434125c2e5fda6c02a28c72e221dd66f64d9)
+++ src/AtomIdSet.cpp	(revision 6aad6f855826b41c7c32b3b3c9706d5adbcf9acd)
@@ -115,4 +115,24 @@
 }
 
+/** Predicate whether given atomic id is contained.
+ *
+ * @param id id to check
+ * @return true - is contained, false - is not
+ */
+bool AtomIdSet::contains(const atomId_t &id) const
+{
+  return (atoms.find(id) != atoms.end());
+}
+
+/** Predicate whether given atom is contained.
+ *
+ * @param key atom to check
+ * @return true - is contained, false - is not
+ */
+bool AtomIdSet::contains(const atom * const key) const
+{
+  return contains(key->getId());
+}
+
 /** Returns the iterator to the atom \a *key.
  *
@@ -122,5 +142,5 @@
 AtomIdSet::const_iterator AtomIdSet::find(const atom * const key) const
 {
-  return const_iterator(atoms.find(key->getId()), FromIdToAtom());
+  return find(key->getId());
 }
 
Index: src/AtomIdSet.hpp
===================================================================
--- src/AtomIdSet.hpp	(revision 57f7434125c2e5fda6c02a28c72e221dd66f64d9)
+++ src/AtomIdSet.hpp	(revision 6aad6f855826b41c7c32b3b3c9706d5adbcf9acd)
@@ -52,4 +52,6 @@
   bool empty() const;
   size_t size() const;
+  bool contains(const atom * const key) const;
+  bool contains(const atomId_t &id) const;
   const_iterator find(const atom * const key) const;
   const_iterator find(const atomId_t &id) const;
Index: src/molecule.cpp
===================================================================
--- src/molecule.cpp	(revision 57f7434125c2e5fda6c02a28c72e221dd66f64d9)
+++ src/molecule.cpp	(revision 6aad6f855826b41c7c32b3b3c9706d5adbcf9acd)
@@ -215,9 +215,4 @@
   sstr << _atom->getType()->getSymbol() << _atom->getNr();
   _atom->setName(sstr.str());
-}
-
-
-bool molecule::containsAtom(atom* key){
-  return (find(key) != end());
 }
 
Index: src/molecule.hpp
===================================================================
--- src/molecule.hpp	(revision 57f7434125c2e5fda6c02a28c72e221dd66f64d9)
+++ src/molecule.hpp	(revision 6aad6f855826b41c7c32b3b3c9706d5adbcf9acd)
@@ -153,5 +153,23 @@
   std::pair<iterator, bool> insert(atom * const key);
 
-  bool containsAtom(atom* key);
+  /** Predicate whether given \a key is contained in this molecule.
+   *
+   * @param key atom to check
+   * @return true - is contained, false - else
+   */
+  bool containsAtom(const atom* key) const
+  {
+    return atomIds.contains(key);
+  }
+
+  /** Predicate whether given \a id is contained in this molecule.
+   *
+   * @param id atomic id to check
+   * @return true - is contained, false - else
+   */
+  bool containsAtom(const atomId_t id) const
+  {
+    return atomIds.contains(id);
+  }
 
 private:
Index: src/unittests/AtomIdSetUnitTest.cpp
===================================================================
--- src/unittests/AtomIdSetUnitTest.cpp	(revision 57f7434125c2e5fda6c02a28c72e221dd66f64d9)
+++ src/unittests/AtomIdSetUnitTest.cpp	(revision 6aad6f855826b41c7c32b3b3c9706d5adbcf9acd)
@@ -103,4 +103,19 @@
 }
 
+void AtomIdSetUnittest::containsTest()
+{
+  // search for atom
+  atoms.insert(atomVector[0]);
+  CPPUNIT_ASSERT( atoms.contains(atomVector[0]) );
+  atoms.erase(atomVector[0]);
+  CPPUNIT_ASSERT( !atoms.contains(atomVector[0]) );
+
+  // search for key
+  atoms.insert(atomVector[0]->getId());
+  CPPUNIT_ASSERT( atoms.contains(atomVector[0]->getId()) );
+  atoms.erase(atomVector[0]->getId());
+  CPPUNIT_ASSERT( !atoms.contains(atomVector[0]->getId()) );
+}
+
 void AtomIdSetUnittest::findTest()
 {
Index: src/unittests/AtomIdSetUnitTest.hpp
===================================================================
--- src/unittests/AtomIdSetUnitTest.hpp	(revision 57f7434125c2e5fda6c02a28c72e221dd66f64d9)
+++ src/unittests/AtomIdSetUnitTest.hpp	(revision 6aad6f855826b41c7c32b3b3c9706d5adbcf9acd)
@@ -29,4 +29,5 @@
   CPPUNIT_TEST ( positionTest );
   CPPUNIT_TEST ( findTest );
+  CPPUNIT_TEST ( containsTest );
   CPPUNIT_TEST ( emptyTest );
   CPPUNIT_TEST ( sizeTest );
@@ -40,4 +41,5 @@
   void positionTest();
   void findTest();
+  void containsTest();
   void emptyTest();
   void sizeTest();
