Cannot change camera position

hi i am new to unity, i am trying to get the main camera to change position when i press F3, and resume its first position when i press F1, could someone please show me where i am going wrong? code below, thank you

using UnityEngine;
using System.Collections;

public class Fps2 : MonoBehaviour {

//public Transform FPSCamera;
bool isFps2 = true;

float currentSpeed = 4.0f;
float boostSpeed = 150.0f;

float turningSpeed = 90.0f;
float MturningSpeed = 90.0f;
public Transform mainCamera;
// Use this for initialization

void Start () {
}

// Update is called once per frame
void Update () {
if (shouldMoveForward ())
moveForward ();
if (shouldTurnLeft ())
turnLeft ();
if (shouldTurnRight ())
turnRight ();
if (shouldMoveBackward ())
moveBackward ();
if (shouldBoost ())
boost ();
if (Input.GetKeyDown(KeyCode.F1)) isFps2 = true;
if (Input.GetKeyDown(KeyCode.F3)) isFps2 = false;

if (isFps2)
{
Vector3 lookAtPoint = transform.position + 20 * transform.forward;
mainCamera.position =
transform.position - transform.forward* 8
+4* transform.up;
mainCamera.rotation = Quaternion.LookRotation(lookAtPoint - mainCamera.position,
transform.up);

}
else
{
Vector3 lookAtPoint = transform.position + 50 * transform.forward;
mainCamera.position =
transform.position - transform.forward* 20
+10* transform.up;
mainCamera.rotation = Quaternion.LookRotation(lookAtPoint - mainCamera.position,
transform.up);

}

//FPSCamera.position = transform.position;
//FPSCamera.rotation = transform.rotation;
//Quaternian
/Vector3 lookAtPoint = transform.position + 20 * transform.forward;
mainCamera.position =
transform.position - transform.forward
8
+4* transform.up;
mainCamera.rotation = Quaternion.LookRotation(lookAtPoint - mainCamera.position,
transform.up);*/

}

static bool shouldMoveForward ()
{
return Input.GetKey (KeyCode.W);
}
void moveForward ()
{
transform.position +=
currentSpeed * transform.forward * Time.deltaTime;
}

static bool shouldTurnLeft ()
{
return Input.GetKey (KeyCode.A);
}
void turnLeft()
{
transform.Rotate(
Vector3.up,-MturningSpeed * Time.deltaTime);
}

static bool shouldTurnRight ()
{
return Input.GetKey (KeyCode.D);
}
void turnRight()
{
transform.Rotate (
Vector3.up, turningSpeed * Time.deltaTime);
}

static bool shouldMoveBackward ()
{
return Input.GetKey (KeyCode.S);
}

void moveBackward ()
{
transform.position -=
currentSpeed * transform.forward * Time.deltaTime;
}

static bool shouldBoost ()
{
return Input.GetKey (KeyCode.Space);
}

void boost ()
{
transform.position +=
boostSpeed * transform.forward * Time.deltaTime;
}

Not sure about most of it but these;

if (shouldMoveForward ())
moveForward ();
if (shouldTurnLeft ())
turnLeft ();
if (shouldTurnRight ())
turnRight ();
if (shouldMoveBackward ())
moveBackward ();
if (shouldBoost ())

You’re using too many () in places they don’t need to be even sometimes.
Plus you didn’t declare any of that stuff at the stop so Unity probably doesn’t have much of a clue what to do with it.
I’m sure someone that knows more than I do will chime in here soon.