docs: def get_attributes(self):
          """This function through the layers from top to bottom, and creates a
          list of all the attributes found
  
          :returns: A list of all the attributes names
          :rtype: list
          """
          attributes = []
          for i in reversed(xrange(len(self.layers))):
              obj = self.layers[i]
              stack_attributes = [attribute for attribute in obj.__dict__.keys()
                                  if not attribute.startswith('__') and
                                  not attribute.endswith('__')]
              attributes = attributes + stack_attributes
          return list(set(attributes))