add operator factory