def empty?
      all? { |k, v| v && v.empty? && !v.is_a?(String) }
    end
def empty?
      all? { |k, v| v && v.empty? && !v.is_a?(String) }
    end
Returns true if no errors are found, false otherwise.
 If the error message is a string it can be empty.