abandoned element factories, instead cloning in add()