caller extension json encoding now uses differences

* improved extension tests
* more auto type deduction