heavy refractoring