outline the app structure