first attempt on PSGD