'adds a progress report
:param kwargs: dictionary containing \'message\', \'total_val\', \'value\''

def add(self, **kwargs):

    message = kwargs.get('message', self.message)
    total_val = kwargs.get('total_val', self.total_val)
    value = kwargs.get('value', self.value)
    if (value and total_val):
        assert ((value >= 0) and (value <= total_val) and (total_val >= 0))
        self.closed = (value == total_val)
    self.total_val = total_val
    self.value = value
    self.message = message
