Principles of OOP: polymorphism, and abstraction - Edindx