Use a trait rather than object for ItemJsonProtocol