add encoder_factory_wrapper