P0300 is a bear to find the cause. Could be cap/rotor/plugs/wires then the coil or cam sensor, egr, vac leak (leans out) or after fighting mine on and off was a bad crank position sensor which I had changed with a Wells (do not use these parts) - even did a TPS as mine was also failing - never got any codes until 1 month later and a p0339 so changed my crank sensor again for a Standard Motor Products sensor and all fixed. Started having a full throttle rattle which pointed to timing so that Wells crank sensor must have thrown that off - specs were probably sloppy so not aligned right - only goes in one way.