refactory finish