public void RotateAndMove()
    {
        // rotate head (... TODO: something not right with this)
        Vector3 mousePos = mainCam.ScreenToWorldPoint(Input.mousePosition);
        float   angle    = Mathf.Atan2(mousePos.x, mousePos.y) * Mathf.Rad2Deg;

        transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward * -1); // -1 for inverted z-axis

        MultiPlayerController childScript = this.transform.GetChild(0).GetComponent <MultiPlayerController>();
        float speed = childScript.GetSpeed();

        //Debug.Log(speed);
        // move head
        //transform.position = Vector2.MoveTowards(transform.position, mousePos, GetSpeed());
        transform.position = Vector2.MoveTowards(transform.position, mousePos, speed);
    }