The nightmare is over. Content now loads using history.js statechange events rather than directly, allowing browser nav and bookmarking. Also added loading animation and refactored a lot.