# CDAP Development Update 4
This is my fourth update. It's delayed about one week because I spent much time on LOG4J security issues with my partner in the middle of this month. In my last [update](https://hackmd.io/@alexchenzl/H1-IBgiYY), the goals for this stage were set to:
* Finish all remained instructions
* Add a state fetcher that fetches states via Geth RPC
Progress
---
Over the past three weeks, almost all the remained instructions, such as call-like opcodes, create and jumpi have been implemented, and the state fetcher also has been implemented and integrated.
The most complex part is the implementation of jumpi. The tool needs to traverse both branches if the condition depends on an unknown storage value. I use the clone of the current EVM context including stack, memory and statedb to run the first branch, and then execute the second branch with the current context. This operation requires much resource. When the branch depth grows, the branch path and the required resource will grow very quickly. A maximum branch depth must be set to avoid a path explosion. If the limitation is reached, only the non-zero condition branch will be executed.
Piper suggested some very useful use cases in this git [issue](https://github.com/alexchenzl/predict_al/issues/1). Besides the first one which is the same as the sate fetcher feature, the execution modes function has also already been supported when I integrated the state fetcher with other parts of this tool in the past week. But there's some work to do to statisfy the third requirement.
Next Goals
---
* Support to predict more accesses repeatedly after it retrieves some states in last round
* Refine output information to show how the tool works in detail
* Run more tests and fix potential bugs