Refactor project structure, add SAO object