need more improvement on the PID