refactor project parse