completed refractoring