refractoring model