Generic singleton

Improve PPRSingleton.

See commit comments.