well 3 months later the car is finally fixed. it turned out to be a lazy TPS sensor. the spring was broken. I never checked it cause I never got a code for it. I guess it was working just well enough not to trip the PCM. After the new TPS the P0103 code went away. its been 200 plus miles and going strong, also my pinging under acceleration is gone too! thanks for all your help!