docs: def edit(self, layer, item, delete=False):
          """
          Edit model.
  
          :param layer: Layer of model to edit
          :type layer: str
          :param item: Items to edit.
          :type item: dict
          :param delete: Flag to return
              :class:`~simkit.core.layers.Layer` to delete item.
          :type delete: bool
          """
          # get layer attribute with model data
          if hasattr(self, layer):
              layer_obj = getattr(self, layer)
          else:
              raise AttributeError('missing layer: %s', layer)
          if delete:
              return layer_obj
          # iterate over items and edit layer
          for k, v in item.iteritems():
              if k in layer_obj.layer:
                  layer_obj.edit(k, v)  # edit layer
              else:
                  raise AttributeError('missing layer item: %s', k)
              # update model data
              if k in self.model[layer]:
                  self.model[layer][k].update(v)
              else:
                  raise AttributeError('missing model layer item: %s', k)