void addInterval(String id, String type, String chromo, int start, int end, int strand, String geneId, String trId) {
		// Get chromosome
		Chromosome chromosome = getOrCreateChromosome(chromo);

		// Add gene?
		if (is(type, TRANSCRIPT)) {
			// Add gene if needed
			Gene gene = findGene(geneId);
			if (gene == null) {
				gene = new Gene(chromosome, start, end, strand, geneId, geneId, "mRNA");
				add(gene);
			}

			// Add transcript
			Transcript tint = findTranscript(trId);
			if (tint == null) {
				tint = new Transcript(gene, start, end, strand, trId);
				add(tint);
			}
		} else if (is(type, EXON)) {
			// Get transcript
			Transcript tint = findTranscript(trId);
			if (tint == null) {
				System.err.println("Cannot find transcript '" + trId + "'");
				return;
			}

			// Create and add exon
			int rank = 0; // Rank info not available in GFF2
			Exon exon = new Exon(tint, start, end, strand, id, rank);
			add(exon);
		}

	}