SPA Design and Architecture: Understanding Single Page Web Applications