---
# System prepended metadata

title: '`nim-waku`: refactor tracks'

---

# `nim-waku`: refactor tracks

The following refactoring tracks are defined for the `nim-waku` refactor and upstream week.
It simplifies the [original list](https://github.com/status-im/nim-waku/issues/639) of refactor issues to tackle during refactor week

## Track 1: Refactor checklist

This is a checklist of best practices that each module must adhere to. Checklist [here](https://hackmd.io/1imOGULZRsed2HpgmzGleA).

## Track 2: General improvements

- [ ] Add `-d:chronosStrictException` compiler directive for all MAKE targets.
- [x] [**Simplify `subscriptions` model**](https://github.com/status-im/nim-waku/issues/574)
- [x] [**Improve `wakunode2` setup**](https://github.com/status-im/nim-waku/issues/581)
- [ ] **Clean up APIs** (`Nim` and `JSON-RPC`): e.g. users of each API should be forced to set a `contentTopic` and be unable to modify the `WakuMessage` `timestamp` when publishing (may also cover https://github.com/status-im/nim-waku/issues/582).
- [ ] [**Clean up parameter initialisation**](https://github.com/status-im/nim-waku/issues/562), especially for `WakuRelay`
- [x] [Whisper/Waku v1 types](https://github.com/status-im/nim-waku/issues/654)
- [ ] [**Simplify pagination logic**](https://github.com/status-im/nim-waku/issues/484)
- [ ] [**Use of `requestId`**](https://github.com/status-im/nim-waku/issues/257) confusing. Can probably be improved.

## Track 3: Miscellaneous tasks

- [x] **Update submodules**, again
- [x] **Clean up open `nim-waku` issues**
- [ ] Add **readme file to explain `nim-waku` structure**
- [ ] **Unittest style guide** (also refactoring of existing tests?)
- [ ] CI improvements, e.g. https://github.com/status-im/nim-waku/issues/391. Also see if CI logging can be improved.
- [ ] [**External dependency clean-up/documentation**](https://github.com/status-im/nim-waku/issues/341)