FIXUP: properly check length
CACHE PARTIAL: try to bind everything to read_todo(), add some plan of future changes