Description
Scala lets us define Singleton Objects (https://docs.scala-lang.org/tour/singleton-objects.html) rather than creating (case) classes and which just have a default constructor. Also, using abstract classes helps with brevity in this case as we can assign default definitions to the functions we need.