Following an old touch tutorial, having errors with deprecated code

So i’ve been following this older tutorial from Sebastian Lague on touch input for mobile. In the comments are some helpful updates to some of his code so that it works in Unity 5. However, something is still not working quite right.

I’m trying to change the color of my button. I have one script for the input, and a second just for the button to received the input commands and then use either the default color or a new color, indicated in the public variables of the button’s script. The problem I keep running into is that I can’t get it to work if I try to dynamically grab the button’s material and change its color. Only if I set that to a public variable and manually put in the material for the button, and I’m not sure why. The error I get doesn’t make sense to me.

Button code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Button : MonoBehaviour {

	public Color defaultColor;  //set manually in the editor
	public Color selectedColor;  //set manually in the editor
	private Material mat;  //This script will work if I set this to public and manually assign the material

	void start(){
		mat = GetComponent<Renderer>().material;
	}

	void OnTouchDown(){
		mat.color = selectedColor;
	}

	void OnTouchUp(){
		mat.color = defaultColor;
	}

	void OnTouchStay(){
		mat.color = selectedColor;
	}

	void OnTouchExit(){
		mat.color = defaultColor;
	}
}

The error I get if I try to click my button states:

NullReferenceException: Object reference not set to an instance of an object
Button.OnTouchDown () (at Assets/Button.cs:16)

But I’ve already referenced the button’s renderer and I’m calling its material color, so I don’t understand why I’m getting that error.

Solved. One stupid typo was screwing it up. void start() should have been capitalized. SIGH.