I have solved this problem, I just need to know what to do. I get the above error because I just realised that the class is being run as class::function($values) instead of class->function($values).
Does anyone know how to convert this function to instantiate the class then run the function with values?
private function _load($values=null) {
    define('LOADED_CONTROLLER', $this->controller);
    define('LOADED_FUNCTION', $this->function);
    $function = $this->function;
    $controller = new $this->controller;
    ($values == null) ? $controller->$function() : call_user_func_array(array($this->controller, $function), $values);
}