extracted KnockoutModelGenerator