Demonstrate design pattern and test driven development in Scala