I am having some difficulty understanding Generics. I am writing this unity code. and it seems as though just calling rigidbody.velocity is outdated. After some searching I found that they have updated to using `GetComponent<T>`. I understand generics increase reusability, and ease casting. In this case, what is `GetComponent<T>`. Is it a class? When I say `GetComponent<Rigidbody>()` is this the constructor? Why do I even need to call a constructor?

```
public class Mover : MonoBehaviour {

    public float speed;
    private Rigidbody moverRigid;

    // Use this for initialization
    void Start () {
        moverRigid = GetComponent<Rigidbody>();
        moverRigid.velocity = transform.forward * speed;
    }

    // Update is called once per frame
    void Update () {

    }
}

```