public function addTracks(array $tracks, int $position = null): QueueInterface
    {
        $uris = [];
        foreach ($tracks as $track) {
            # If a simple uri has been passed then convert it to a Track instance
            if (is_string($track)) {
                $track = $this->trackFactory->createFromUri($track);
            }

            if (!$track instanceof UriInterface) {
                $error = "The tracks must contain either string URIs or objects that implement " . UriInterface::class;
                throw new \InvalidArgumentException($error);
            }

            $uris[] = $track;
        }

        $this->addUris($uris, $position);

        return $this;
    }