refactor season events code