add IReference and IProxy protocols