purposer logic