- modified to support both encoding and decoding - fixes - added test for all encodings
- more flexible and developer friendly. Still not active code