abstractions for pd