add split and merge operators, operatorFactory and moduleFactory