Examples derived from tutorial => https://www.lynda.com/Scala-tutorials/Scala-Essential-Training/574693-2.html