expandSubtree( subtreeRoot, subtree ) {

		// TODO If multiple contents were supported then this tile could contain both renderable and un renderable content.
		const contentTile = SubtreeTile.copy( subtreeRoot );
		// If the subtree root tile has content, then create a placeholder child with cloned parameters
		// Todo Multiple contents not handled, keep the first content found
		for ( let i = 0; subtree && i < subtree._contentAvailabilityBitstreams.length; i ++ ) {

			if ( subtree && this.getBit( subtree._contentAvailabilityBitstreams[ i ], 0 ) ) {

				// Create a child holding the content uri, this child is similar to its parent and doesn't have any children.
				contentTile.content = { uri: this.parseImplicitURI( subtreeRoot, this.rootTile.content.uri ) };
				break;

			}

		}
		subtreeRoot.children.push( contentTile );
		// Creating each leaf inside the current subtree.
		const bottomRow = this.transcodeSubtreeTiles(
			contentTile,
			subtree
		);
		// For each child subtree, create a tile containing the uri of the next subtree to fetch.
		const childSubtrees = this.listChildSubtrees( subtree, bottomRow );
		for ( let i = 0; i < childSubtrees.length; i ++ ) {

			const subtreeLocator = childSubtrees[ i ];
			const leafTile = subtreeLocator.tile;
			const subtreeTile = this.deriveChildTile(
				null,
				leafTile,
				null,
				subtreeLocator.childMortonIndex
			);
			// Assign subtree uri as content.
			subtreeTile.content = { uri: this.parseImplicitURI( subtreeTile, this.rootTile.implicitTiling.subtrees.uri ) };
			leafTile.children.push( subtreeTile );

		}

	}
Expand a single subtree tile. This transcodes the subtree into
a tree of {@link SubtreeTile}. The root of this tree is stored in
the placeholder tile's children array. This method also creates
tiles for the child subtrees to be lazily expanded as needed.

@param {Object | SubtreeTile} subtreeRoot The first node of the subtree.
@param {Subtree} subtree The parsed subtree.
@private