backwards compatible addition of map-like indexing from ojobject and boost::optional print support