variant model refractored