p20 server side implementation