BMW recalls some 345,000 cars