Added Product Factory class