and copying decoders works; required big refactor