Why is the implicit val needed? Also, shadowing the parameter "system" should be avoided.