name shouldn't be empty by default I think. We even should check for the name in the `__init__` constructor, I guess, to be sure the implementer isn't missing it. (same applies for options).