introducing new algo factory