improved SPA