Refactory for PupupedControl event abstract.