hopefully resolves long standing problems with odering and type relations of objects handled via smart ptr