How to create a player class and make 2 instances of the player, and handle different input key for each player?

Hello, I am very new to unity, I followed the Roll a Ball tutorial here https://unity3d.com/learn/tutorials/projects/roll-a-ball/displaying-text?playlist=17141

I successfully made a one player game. And now I want to make a 2 players game in the same script.
How do I create a player class and handle the different keys for 2 players’ movement?
I attach my code here. I attach the same script to the two players, now it does not move independently because I have not created a class or handle the input in my script.

Thank you for your help!

Code:

public float speed;
private Rigidbody rb;
public Text gameText;
public Text keyText;

// Use this for initialization
void Start()
{
    // associate the rb object with players, and initiallize UI texts

    rb = GetComponent<Rigidbody>();
    gameText.text = "";
    keyText.text = ("Move keys: ←↑→↓");

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

}
void FixedUpdate()
{   //move the player by input keys

    float moveHorizontal = Input.GetAxis("Horizontal");
    float moveVertical = Input.GetAxis("Vertical");

    Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);

    rb.AddForce(movement * speed);

}

}

Instead of:

     float moveHorizontal = Input.GetAxis("Horizontal");
     float moveVertical = Input.GetAxis("Vertical");

You should make two variables

public string InputHorizontal;
public string InputVertical;

and change them in the inspector to choose the keys

and then in the script use:

 float moveHorizontal = Input.GetAxis(InputHorizontal);
 float moveVertical = Input.GetAxis(InputVertical);