abstracting json mapping to pluggable interface; heavily simplifying interface