use boost::optional for array_of_struct
array_of_struct entity recycling
struct_of_array entity recycling