A compilation of suggestions from #78 - [ ] Interfaces -I.3 (singletons) as well as I.11 & I.13 (avoid raw_ptr ownership transfer, avoid passing arrays without length) - [x] Errors - E.6 use RAII - [ ] Classes - C.131 Avoid trivial getters/setters - [ ] If you have a debate about how to do something, check core guidelines - [ ] When to use free functions (anonymous namespace) and when member functions - [ ] Keep headers clean, low number of includes? (#508) - [ ] Discuss [SOLID principle](https://en.wikipedia.org/wiki/SOLID) at the end of OOP