support for nested objects and arrays