@classmethod
def _merge(cls, d1, d2):
    """ d1 overwrites values in d2 """
    for k in d1.keys():
        if isinstance(d1[k], cls.container) and k in d2 and isinstance(d2[k
            ], cls.container):
            d2[k] = cls._merge(d1[k], d2[k])
        else:
            d2[k] = d1[k]
    return d2
