moving decoding to decoder and doing moar