major fix: persist cp and needed_start between blocks