restructure code
fix typos
add setup.py