Refactored the app to have different "levels" for different demos.