refined PDMat constructor API