private function assertTokenStruct($tokenStruct)
    {
        if (! is_array($tokenStruct)) {
            throw new Exception\InvalidTokenException('Invalid token struct; must be an array');
        }

        if (2 > count($tokenStruct)) {
            throw new Exception\InvalidTokenException('Invalid token struct; missing data');
        }

        if (! isset($tokenStruct[0]) || ! isset($tokenStruct[1])) {
            throw new Exception\InvalidTokenException('Invalid token struct; missing either index 0 or 1');
        }

        if (! in_array($tokenStruct[0], $this->validTokens, true)) {
            throw new Exception\InvalidTokenException('Invalid token struct; invalid token at position 0');
        }
    }