use the fact that the compiler finds implicits in companion objects