pd abstraction