Scala Coursera project by Martin Odersky 2013
url: https://class.coursera.org/progfun-003