# `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)