base for factory