# EPF Dev Update 14 - **Testing Progress:** Over the past two weeks, I’ve been focusing on writing tests for the **Stats Analyzer**, **CMSketch**, and **NGram** components. Each of these components now has clear separation of responsibilities, with **NGram** handling the core logic, especially around bit-twiddling, while the **Stats Analyzer** focuses on finding TopN **CMSketch** serves as a probabilistic stats acumulator. - **New Components**: Builders for stats and cms. a queue that delays processing until it is disposed. - **Bug Fixes and Improvements:** During testing, I found an issue with the **hash function** in the **CMSketch**. The hashing process wasn’t reliable enough, so I updated it. Now, each octet of data is mixed with an octet of seed during hashing, which has improved the reliability and accuracy. - **Minor Optimization:** I also simplified the **topN algorithm** in the **Stats Analyzer**. This has made the it faster and less complex. - **Challenges:** Writing tests for the **CMSketch** has been more time-consuming than expected. While I’ve written tests for all the components, they’re still a bit convoluted. I’m working on simplifying them to make them easier to understand. - **Direction Changes:** Initially, the plan was to modify the **EVM call site** to hold the queue, but after discussions last week, we decided to shift away from that idea. Now, we’re implementing it as a **tracer** instead. I’m currently working on understanding all the tracing machinery in the codebase to move forward with this approach.