What components are there to gamification applications?