add setup.py
split into different modules