Object refrence not set to an instance of an object (681917)

I can’t seem to attach my script component to its type, here’s my code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent (typeof (Controller2D))]
public class Player : MonoBehaviour
{
    Controller2D controller;
    public void Start()
    {
            controller = controller.GetComponent<Controller2D>();       
    }

My game object has both this player script and the Controller2D script, so I can’t understand why this line
controller = controller.GetComponent(); won’t work.
Further than that, I’ve required the component to be attached to this game object, so why is it saying that the object refrence is not set to an instance of an object?

Nevermind, I forgot the implementation is: controller = GetComponent();
and not: controller = controller.GetComponent();

silly me…