refactor GirProject