overhauled app structure