1. A method for caching content retrieved from a server in a memory of a mobile device comprising: generating a content request at the mobile device in response to an input at the mobile device, the content request identifying a current media subject to download; retrieving the current media subject and a media package structure associated with the current media subject to the mobile device, the media package structure identifying the current media subject, a plurality of other media subjects, and a navigation path having at least three different directions from the current subject to the plurality of other media subjects; consuming the current media subject at the mobile device; downloading at least two of the plurality of other media subjects identified in the media package structure that are adjacent to the current media subject along the navigation path, the at least two of the plurality of other media subjects not being either previously requested or directly referenced by the current media subject, and caching the at least two other media subjects in the memory while the current media subject is being consumed; determining a download priority for the plurality of other media subjects as a function of a plurality of caching criteria; and downloading at least another one of the plurality of other media subjects for caching in the memory as function of the determined priority.