first in python
purposer logic