new attempt at gpr wrapper