you can set encoder and decoder protos at run time