added gson support (experimental / untested)