Implemented in scala
Updated progress