Cleanup

    # need something better here
I think it is better now! :P

Moved the encodings to a dict, so adding new encoding will be easier. Plus, we don't need `source_encoding` and `target_encoding` anymore.