https://javascript.plainenglish.io/pattern-adapter-in-3-minutes-master-design-patterns-in-an-easy-way-e9135b79dc79