How about just being able to specify and pass in a source vs. name? Then there is no constraint on the options method. Also, I think this should be handled in the semantic decorator and access the options internally like all the other methods. Further, it should find the source internally as well, so I don't think this needs any arguments. I think you still need the options on the detail class for definition, but the value in the decorator can update that.