add ElementFactory for produce elements