pgeo refactor