def update(self, d, ignore_errors=True, block_user_signals=False):
if not type(d) == dict: d = d.headers<EOL>self._lazy_load.update(d)<EOL>for k in list(self._lazy_load.keys()):<EOL><INDENT>if not self._find_parameter(k.split('<STR_LIT:/>'), False, True) == None:<EOL><INDENT>v = self._lazy_load.pop(k)<EOL>self._set_value_safe(k, v, ignore_errors, block_user_signals)<EOL><DEDENT><DEDENT>return self<EOL>
Supply a dictionary or databox with a header of the same format
and see what happens! (Hint: it updates the existing values.)

This will store non-existent key-value pairs in the dictionary 
self._lazy_load. When you add settings in the future,
these will be checked for the default values.