added some comments that explain the app structure