Polymorphism in Typescript
FP and OOP teaming up to fight code redundancy