new refactory