refine
refine. add ctor