Explain basic app structure