new feature: factory service