use JSON.Net serialization