Design and basic app structure