functionally complete SPA