Gamification By Design by Gabe Zichermann & Christopher Cunningham