diff --git a/include/hpp/manipulation/container.hh b/include/hpp/manipulation/container.hh
index a68751a725934c625fd4bf4c666a5ebb23ddad14..97c83448ae54ac356910cd4581740bdc55c5231f 100644
--- a/include/hpp/manipulation/container.hh
+++ b/include/hpp/manipulation/container.hh
@@ -28,6 +28,8 @@ namespace hpp {
     {
       public:
         typedef std::map <Key, Element> ElementMap_t;
+        typedef Key Key_t;
+        typedef Element Element_t;
 
         /// Add an element
         void add (const Key& name, const Element& element)
@@ -55,6 +57,16 @@ namespace hpp {
           return l;
         }
 
+        template <typename ReturnType>
+        ReturnType getKeys () const
+        {
+          ReturnType l;
+          for (typename ElementMap_t::const_iterator it = map_.cbegin ();
+              it != map_.cend (); ++it)
+            l.push_back (it->first);
+          return l;
+        }
+
         /// Return the underlying map.
         const ElementMap_t& getAll () const
         {