replaced by setup.py