rebuilt program whit factory method suport