Would it be better to do this in __new__?