Part 17 - add setup.py