Add intersection implementation