first func, build_coder
build coder, decoder, apply_coder;