this means: - [ ] as less as possible raw pointers - [ ] use smart pointers instead of raw pointers for classes - [ ] solid principle & design patterns - [ ] prefer std functions, containers, algorithms over self written ones - [ ] no macros