https://ibrahimgunduz34.medium.com/writing-maintainable-and-testable-code-the-why-behind-design-principles-29526e8a00e9