refine
redefine structure