Please dont`t ask why I have more than one controller: this is what my teacher wants. I have 3 controllers: Api.php, Token.php and Apikey.php, where Api.php is the "main" one.
PROBLEM: When I pass into the URL: http://localhost/revolution/index.php/api/registerUser/first_name/12First
it seems there are problems with loading the Token controller from Api controller.
ERROR: Fatal error: Call to a member function generateToken() on null
What can I do?
API Controller: Api.php
class api extends CI_Controller {
    public function index()
    {
        parent::__construct();
        $this->load->library("../controllers/Apikey.php");
        $this->load->library("../controllers/Token.php");
    }
    public function registerUser ($username,$parola)
    {
        if ($this->isValidUserName($username) && $this->isValidPass($parola)) {
            $this->load->library("../controllers/Token");
            $id = $this->ApiModel->insertCredentials($username, md5($parola));
            $this->Token->generateToken($id);
            $this->ApiKey->generateApiKey($id);
            $data['registered'] = 1;
            $this->load->view('api', $data);
        }
    }
}
Controller Token.php
 public function existsToken($token)
    {
        $arrayTokens = $this->ApiModel->getAllTokens();
        if (in_array($token, $arrayTokens))
            return existsToken(sha1($this->randomString())); //$this->isValidToken(sha1($this->randomString()));
        return $token;
    }
    public function randomString() {
        return intval(993432422 % rand());
    }
   public function generateToken($id_user)
    {
        $token = $this->existsToken(sha1($this->randomString()));       
        $date = $this->generateExpDate();
        $result = $this->ApiModel->insertToken($token, $date, $id_user);    
    }
 
    