add setup.py
extract codecs to util.py
add test suite