# Week 7
Hi everyone, Rupam here. This week I applied some final changes to my [PR](https://github.com/prysmaticlabs/prysm/pull/14186) which implements the `is_better_update` helper function from CL specs in Prysm after which it got merged successfully. I also started working with the next thing on the roadmap.
## Adding Capella/Deneb changes from corresponding `full-node.md` spec files
This requires me to implement the helper function `compute_merkle_proof` from [CL specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/light-client/full-node.md#compute_merkle_proof) first.
```go
return LightClientHeader(
beacon=BeaconBlockHeader(
slot=block.message.slot,
proposer_index=block.message.proposer_index,
parent_root=block.message.parent_root,
state_root=block.message.state_root,
body_root=hash_tree_root(block.message.body),
),
execution=execution_header,
execution_branch=execution_branch,
)
```
What changes is `LightClientHeader` contains two more fields now. We should populate these fields inside `createLightClientBootstrap`. The `compute_merkle_proof` function is required because `execution_branch` is calculated the following way:
```go
execution_branch = ExecutionBranch(
compute_merkle_proof(block.message.body, EXECUTION_PAYLOAD_GINDEX))
```
## Some Challenges
Adding this section because I am facing quite a few challenges while working on this. The `compute_merkle_proof` function is not implemented in CL specs as there are supposed to be different implementations everywhere. I looked into Lighthouse's and Nimbus' implementations but wasn't able to make much out of them. Radek has said he would try to break down the problem into smaller parts for ease of understanding and has also given a high level overview of what we need to do. On my part I'll also need to understand better on how merkle proofs work to make the task easier.