adds object private data to derived items

no more globals