https://medium.com/@msaim/php-polymorphism-unleashing-the-power-of-flexibility-in-oop-object-oriented-programming-361775ac1f11