change the factory to an triangle version