seperate PTP llh functions