added decoders & encoders