Why do we need `window_id` and `waiting` in the Thread class? Each class instance would have own waiting dictionary with single entry, isn't it?