add intersection func