migrated billing logic to Activity, catching callbacks correctly