logic.py