payment implementation