https://medium.com/@yusufkaraasln/object-oriented-paradigms-javas-classes-and-javascript-s-prototypes-75e0a40c5e03