added pd abstractions