now take real types into account (but all object types treated as 'id')