changes
cache encodings
deal with other encodings
fix tests