client-app structure