fix this now that the object strategy uses it too
use the rpython visitor
be a bit more object-oriented in the json repr