refactor proj arch