@classmethod
def _norm_source(cls, source):
    """internal helper - accepts string, dict, or context"""
    if isinstance(source, dict):
        return cls(**source)
    elif isinstance(source, cls):
        return source
    else:
        self = cls()
        self.load(source)
        return self
