https://towardsdev.com/solid-principles-in-javascript-for-writing-clean-code-single-responsibility-principle-e8757ff32597