have you cleaned the IACV? my b7 was running very poor and doing the same things as you discribed. Iit turned out my IACV was bad. so i got a new (used one) and it runs fine now.