def evaluate_message(message)
      if message.respond_to?(:call)
        if resource.respond_to?(:model) && resource.model.respond_to?(:properties)
          property = resource.model.properties[attribute_name]
          message.call(resource, property)
        else
          message.call(resource)
        end
      else
        message
      end
    end
def evaluate_message(message)
      if message.respond_to?(:call)
        if resource.respond_to?(:model) && resource.model.respond_to?(:properties)
          property = resource.model.properties[attribute_name]
          message.call(resource, property)
        else
          message.call(resource)
        end
      else
        message
      end
    end
TODO: Drop this or heavily refactor it.
   This is too complicated and coupled to DM.