refactor GPR