Add factor.py