created single factory file