def key(value)
      if self.map? && @data.has_value?(value)
        @data.invert[value]
      elsif (self.map?  && @data.has_key?(value)) ||
            (self.list? && @data.include?(value))
        value
      else
        nil
      end
    end
def key(value)
      if self.map? && @data.has_value?(value)
        @data.invert[value]
      elsif (self.map?  && @data.has_key?(value)) ||
            (self.list? && @data.include?(value))
        value
      else
        nil
      end
    end
lookup collection key by a value