data structure refinement