<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _create_dict_with_nested_keys_and_val(cls, keys, value):
 """Recursively constructs a nested dictionary with the keys pointing to the value. For example: Given the list of keys ['a', 'b', 'c', 'd'] and a primitive value 'hello world', the method will produce the nested dictionary {'a': {'b': {'c': {'d': 'hello world'}}}}. The number of keys in the list defines the depth of the nested dict. If the list of keys is ['a'] and the value is 'hello world', then the result would be {'a': 'hello world'}. :param list of string keys: A list of keys to be nested as a dictionary. :param primitive value: The value of the information being stored. :return: dict of nested keys leading to the value. """


    if len(keys) > 1:
      new_keys = keys[:-1]
      new_val = {keys[-1]: value}
      return cls._create_dict_with_nested_keys_and_val(new_keys, new_val)
    elif len(keys) == 1:
      return {keys[0]: value}
    else:
      raise ValueError('Keys must contain at least one key.')