adding SPA architecture