One could argue that decoding and encoding should be in `DataStore`. I'd buy that if someone made it, but felt it was too much