Exception classes and generic PAO implementation