new PuffData container for managing puffs and shells