> Need to think about it more, I guess. > Agreed. The set of xhtml attributes isn't huge, but there are some opportunities for confusion there: 'title' and 'id' come to mind, and what about 'xml:lang'? Maybe the attributes should always be passed in a dictionary, and some other sugar-wrapper can be used to make it convenient to make an attributes dictionary to pass. def __init__(self, name, value=None, attributes=None) ... self.attributes = attributes or {} Thing('age', value=3, attributes=sugar(title='ok'))