Refactoring of Spa
Merge branch 'spa'