refactor p