don't require pass by reference
use __constructor()
PersistentObject method not really a constructor

This violation of naming convention did cause some confusion, so we
rename the function to prevent future misunderstanding.
do not pre-load deprecated functions script for internal deprecations

These will give missing class errors then, but what do you want if the
deprecated functions plugin is not enabled.