use composite columns, return json array