Waypoint problem

Hi,
I have created a basic car game and now began to add AI cars. I have this script for a car:

using UnityEngine;
using System.Collections;

public class movement : MonoBehaviour {

	[SerializeField]
	float _speed;

	int _waypoint_number = 0;

	[SerializeField]
	GameObject points;
	
	Vector3 next_position;
	
	void Start () {
		Transform temp  = points.transform.GetChild(_waypoint_number);
		next_position = temp.transform.position;
	}
	
	void Update () {
		transform.LookAt(new Vector3(next_position.x, transform.position.y, next_position.z));
		transform.Translate (0, 0, _speed * Time.deltaTime);
	}

	void onTriggerEnter(Collider c){
		Debug.Log (c.transform.name);
		if (c.transform.name == ("p" + _waypoint_number)){
			_waypoint_number += 1;
			Debug.Log("entered :D number: " + _waypoint_number);
		}
		Transform temp  = points.transform.GetChild(_waypoint_number);
		next_position = temp.transform.position;
	}

}

I have empty objects around my map called p0, p1, p2, p3, etc. I use them as points for the car to follow. Their positions are used to make the car face them and drive forward on its own. Right now my problem is that when the car reaches its first way point, it will behave weird (looks like an attempt to circle the way point. As soon as it reaches the way point’s ‘is trigger’ collider, it faces it again).

I use colliders to determine if the car is ready to switch to the next way point. Does anybody have any idea what the problem is? I am NOT new to scripting, so i presume that my code makes sense.

Keep in mind that I made an empty game object names ‘waypoints’ and made the p0, p1, p2, etc as it children. If you need more details please comment telling me so.

Basically, I need my car to switch from 1 point to the next.

Sorry, I named a function wrong. It should have been OnTriggerEnter(), not onTriggerEnter(). My mistake.