method
is_ready = need_eot
||
selected <>
None
||
self
#
cached_select <>
None