Strategy pattern - Direct translation from Java to Scala
Trying to remove mutable state - Trial 1
Removes mutable state