SPA implementation