'return a MarkDecorator with extra arguments added
unlike call this can be used even if the sole argument is a callable/class
:return: MarkDecorator'

def with_args(self, *args, **kwargs):

    mark = Mark(self.name, args, kwargs)
    return self.__class__(self.mark.combined_with(mark))
