data should be an empty array by default