Another revision to ObstacleCourse, include different modes