added factory producer