docs: def decorator(self, **arg_specs):
  		""" Return decorator that can decorate target function
  
  		:param arg_specs: dictionary where keys are parameters name and values are theirs specification.\
  		Specific specification is passed as is to :meth:`Verifier.check` method with corresponding \
  		parameter name.
  
  		:return: function
  		"""
  
  		if self.decorate_disabled() is True:
  			def empty_decorator(decorated_function):
  				return decorated_function
  			return empty_decorator
  
  		def first_level_decorator(decorated_function):
  
  			function_spec = getfullargspec(decorated_function)
  			args_checks = self._args_checks_gen(decorated_function, function_spec, arg_specs)
  			varargs_check = self._varargs_checks_gen(decorated_function, function_spec, arg_specs)
  			kwargs_checks = self._kwargs_checks_gen(decorated_function, function_spec, arg_specs)
  
  			def second_level_decorator(original_function, *args, **kwargs):
  				self._args_checks_test(original_function, function_spec, args_checks, args, arg_specs)
  				self._varargs_checks_test(original_function, function_spec, varargs_check, args, arg_specs)
  				self._kwargs_checks_test(original_function, kwargs_checks, kwargs, arg_specs)
  
  				return original_function(*args, **kwargs)
  			return decorator(second_level_decorator)(decorated_function)
  		return first_level_decorator