# EPF Cohort 6 - Week 14 Update
This week I attended the pq interop call \#10 which discussed leanMetrics, the metrics every client team must track for the PQ Devnets. I also attended Ream's call where I shared my update on the PR and discussed further tasks for the PQ Devnet.
I submitted a PR for making hash sig signature scheme modular using cargo features which has since been merged.
## Week 14
### PQ Interop Meeting 10
As we get closer to running a PQ devnet, this call focused on metrics as well as tests that every client team will implement so we can better analyze the performance of the lean consensus changes. This lead to the creation of the leanMetrics repo which I will link below.
We also discussed testing against the spec for clients participating the PQ Devnet. The current state of the tests can be found [here](https://github.com/leanEthereum/leanSpec/tree/main/tests/lean_spec/subspecs).
I am going to discuss with my mentor how we want to structure these tests in ream and will get a headstart on integrating them this week.
### PR on HashSig Signature Schemes
Here's the issue for [Making a Modular HashSigScheme](https://github.com/ReamLabs/ream/issues/771). We previously had hardcoded the signature scheme to SIGWinternitzLifetime18W4 which is not what we would use in testing or in production. We wanted this to be configurable.
I tried a couple of things to implement this:
1. Create a config.rs with multiple configs to swap before running
2. Make hashSigScheme an enum
3. Cargo Features
Using cargo features seemed like the cleanest approach to me. I started with 2 features, prod and test and created a scheme.rs file where custom signature schemes can be created.
```
[features]
default = ["signature-scheme-prod"]
signature-scheme-prod = []
signature-scheme-test = []
```
These features implement the SIGTopLevelTargetSumLifetime32Dim64Base8 and SIGTopLevelTargetSumLifetime8Dim16Base4 (custom test scheme) respectively.
```rust
#[cfg(feature = "signature-scheme-prod")]
pub type HashSigScheme = hashsig::signature::generalized_xmss::instantiations_poseidon_top_level::lifetime_2_to_the_32::hashing_optimized::SIGTopLevelTargetSumLifetime32Dim64Base8;
#[cfg(feature = "signature-scheme-test")]
pub type HashSigScheme = crate::hashsig::scheme::SIGTopLevelTargetSumLifetime8Dim16Base4;
```
I received some feedback from Kolby to make the code cleaner and the PR has since been merged.
## Resources
1. [Modular HashSigScheme PR](https://github.com/ReamLabs/ream/pull/791)
2. [Issue for Modular HashSigScheme](https://github.com/ReamLabs/ream/issues/771)
3. [LeanMetrics](https://github.com/leanEthereum/leanMetrics)
4. [Lean Spec Tests](https://github.com/leanEthereum/leanSpec/tree/main/tests/lean_spec/subspecs)
5. [PQ Interop Meeting 10](https://github.com/ethereum/pm/issues/1712)