setup.py and a bit of documentation