updates to support more complex json