It's a little confusing how `signal[key] = val` will throw a `KeyError` if the key does not exist. Assuming this is intended, add a comment to the docstring indicating that `init(key, init_val)` _must_ be called first. But, also, why is this required? Why not just do the `init` inside if it hasn't yet been set?