decoding uses the updater pattern now like encoding
Tried to set better constants