Better app architecture