TP(Third Person) Scripting Issues

Can’t seem to get to get my capsule to move… What am I doing wrong?

TP_Controller.cs

using UnityEngine;
using System.Collections;

public class TP_Controller : MonoBehaviour 
{

	public static CharacterController CharacterController;
	public static TP_Controller Instance;
	
	void Awake() 
	{
		CharacterController = GetComponent("CharacterController") as CharacterController;
		Instance = this;
	}
	
	void Update() 
	{
		if (Camera.mainCamera == null)
			return;
		
		GetLocomotionInput();
		
		TP_Motor.Instance.UpdateMotor();
	}
		
	void GetLocomotionInput()
	{
		var deadZone = 0.1f;
		
		TP_Motor.Instance.MoveVector = Vector3.zero;
		
		if (Input.GetAxis("Vertical") > deadZone || Input.GetAxis("Vertical") < -deadZone)
			TP_Motor.Instance.MoveVector += new Vector3(0, 0, Input.GetAxis("Vertical"));
		
		if (Input.GetAxis("Horizontal") > deadZone || Input.GetAxis("Horizontal") < -deadZone)
			TP_Motor.Instance.MoveVector += new Vector3(Input.GetAxis("Horizontal"), 0, 0);
	}
}

TP_Motor.cs

using UnityEngine;
using System.Collections;

public class TP_Motor : MonoBehaviour 
{
	public static TP_Motor Instance;
	
	public float MoveSpeed = 10f; 
	
	public Vector3 MoveVector { get; set; } 

	void Awake() 
	{
		Instance = this;
	}
	
	public void UpdateMotor() 
	{
		SnapAlignCharacterWithCamera();
		ProcessMotion();
	}
	
	void ProcessMotion()
	{
		// Transform MoveVector to Worlds Space
		MoveVector = transform.TransformDirection(MoveVector);
		
		// Normalize MoveVector if Magnitude > 1
		if (MoveVector.magnitude > 1)
			MoveVector = Vector3.Normalize(MoveVector);
		
		// Multiply MoveVector by MoveSpeed
		MoveVector *= MoveSpeed;
		
		// Multiply MoveVector by DeltaTime
		MoveVector *= Time.deltaTime;
		
		// Move the Character in World Space
		TP_Controller.CharacterController.Move(MoveVector);
	}
	
	void SnapAlignCharacterWithCamera()
	{
		if (MoveVector.x != 0 || MoveVector.z != 0)
		{
			transform.rotation = Quaternion.Euler(transform.eulerAngles.x,
				 								  Camera.mainCamera.transform.eulerAngles.y,
												  transform.eulerAngles.z);
		}
	}
}

Sorry, didn’t mean to say can’t get the capsule to move. It’s moving but something is weird.

It can move to the right when I press ‘D’ to the left when I press ‘A’ and back when I press ‘S’ but when I press ‘W’ for forward, it kind of runs into like an invisible barrier. Preventing it from moving forward, just at a weird 45 degree angle very very slowly.

Problem?

Please can someone help me??