added @data_size to help figure out how big each structure is