refactored setup.py for better reading of extra_setup