modified to use the RewardItem trait