pk 구현