- [ ] More readable and self-explaining source code - [ ] Improve code organisation - [ ] Functional tests with less boilerplate - [ ] Unit testing coverage for internal functions and utilities