modified JSON serialization behavior: we rely on default JSON.stringify