diff --git a/pom.xml b/pom.xml
index 4630dc9b7821acf53330edd2f484e4df56cc00ed..2c9bc6dfb54b6eb614e2c212085a65d2f3d7066a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
 
         <properties>
                 <commons-io-version>2.4</commons-io-version>
-                <link-rewriter-version>0.0.4-SNAPSHOT</link-rewriter-version>
+                <link-rewriter-version>0.2.0-SNAPSHOT</link-rewriter-version>
                 <saxon-version>9.4.0.7</saxon-version>
                 <cxf-version>2.7.4</cxf-version>
                 <confclient-version>1.0-SNAPSHOT</confclient-version>
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/Aggregation.java b/src/main/java/info/textgrid/services/aggregator/tree/Aggregation.java
deleted file mode 100644
index c9b71065a05298536c653856981238f614e7eb3b..0000000000000000000000000000000000000000
--- a/src/main/java/info/textgrid/services/aggregator/tree/Aggregation.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import info.textgrid.namespaces.metadata.core._2010.ObjectType;
-
-import java.util.List;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-
-public class Aggregation extends AggregationEntry implements IAggregation {
-
-	private final List<IAggregationEntry> children = Lists.newArrayList();
-
-	public Aggregation(final ObjectType metadata) {
-		super(metadata);
-	}
-
-	public Aggregation(final ObjectType metadata, final Aggregation parent) {
-		super(metadata, parent);
-	}
-
-	// @Override
-	// public String toString() {
-	// return super.toString() + ": [" + (children == null? "!!!" :
-	// Joiner.on(", ").join(children)) + "]";
-	// }
-
-	protected IAggregation add(final IAggregationEntry child) {
-		children.add(child);
-		return this;
-	}
-	
-	/* (non-Javadoc)
-	 * @see info.textgrid.services.aggregator.tree.IAggregation#getChildren()
-	 */
-	@Override
-	public ImmutableList<IAggregationEntry> getChildren() {
-		return ImmutableList.copyOf(children);
-	}
-
-}
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/AggregationEntry.java b/src/main/java/info/textgrid/services/aggregator/tree/AggregationEntry.java
deleted file mode 100644
index df00fb48c58c3912cf3c18b0a49adcdb2f721c32..0000000000000000000000000000000000000000
--- a/src/main/java/info/textgrid/services/aggregator/tree/AggregationEntry.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import info.textgrid.namespaces.metadata.core._2010.ObjectType;
-
-import java.net.URI;
-import java.text.MessageFormat;
-
-import com.google.common.base.Optional;
-
-/**
- * Represents an entry in an aggregation.
- */
-public class AggregationEntry implements IAggregationEntry {
-
-	private final ObjectType metadata;
-
-	protected final Optional<Aggregation> parent;
-
-	protected AggregationEntry(final ObjectType metadata) {
-		this(metadata, null);
-	}
-
-	protected AggregationEntry(final ObjectType metadata,
-			final Aggregation parent) {
-		this.metadata = metadata;
-		this.parent = Optional.fromNullable(parent);
-		if (this.parent.isPresent()) {
-			parent.add(this);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see info.textgrid.services.aggregator.tree.IAggregationEntry#getParent()
-	 */
-	@Override
-	public Optional<Aggregation> getParent() {
-		return parent;
-	}
-
-	/* (non-Javadoc)
-	 * @see info.textgrid.services.aggregator.tree.IAggregationEntry#getMetadata()
-	 */
-	@Override
-	public ObjectType getMetadata() {
-		return metadata;
-	}
-
-	public String getFormat() {
-		return getMetadata().getGeneric().getProvided().getFormat();
-	}
-
-	@Override
-	public String toString() {
-		try {
-			return MessageFormat.format("{0} ({1}, {2})", metadata.getGeneric()
-					.getGenerated().getTextgridUri().getValue(), metadata
-					.getGeneric().getProvided().getTitle().get(0), metadata
-					.getGeneric().getProvided().getFormat());
-		} catch (final NullPointerException e) {
-			return ("<AggregationEntry w/o complete metadata>");
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see info.textgrid.services.aggregator.tree.IAggregationEntry#getTextGridURI()
-	 */
-	@Override
-	public URI getTextGridURI() {
-		return URI.create(getMetadata().getGeneric().getGenerated().getTextgridUri().getValue());
-	}
-
-}
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/DefaultFilenamePolicy.java b/src/main/java/info/textgrid/services/aggregator/tree/DefaultFilenamePolicy.java
deleted file mode 100644
index 2088bcfa2e2cba269f4ca29ed4453b4c8b4fa9d0..0000000000000000000000000000000000000000
--- a/src/main/java/info/textgrid/services/aggregator/tree/DefaultFilenamePolicy.java
+++ /dev/null
@@ -1,250 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import info.textgrid.namespaces.metadata.core._2010.ObjectType;
-
-import java.net.URI;
-
-import com.google.common.base.Optional;
-import com.ibm.icu.text.Transliterator;
-
-/**
- * The default filename policy is a stateless {@link IFilenamePolicy} that
- * creates filenames from objects or aggregation objects according to the
- * following rules:
- * <ol>
- * <li>An arbitrary string is {@linkplain #translate(String) translated} to a
- * filename fragment by applying an ICU based transliteration that converts most
- * scripts to the US-ASCII range. Then, most special characters are replaced by
- * underscore characters.</li>
- * <li>For a {@linkplain ObjectType TextGrid Metadata object}, the
- * {@linkplain #getFilename(IAggregationEntry, boolean) generated file name} is
- * created using the pattern <em>‹title0›.‹uripart›[.‹extension›]</em>, where
- * <dl>
- * <dt>title0</dt>
- * <dd>is the first title of the object, {@linkplain #translate(String)
- * translated} according to the rules outlined above,</dd>
- * <dt>uripart</dt>
- * <dd>is the TextGrid URI stripped from its <code>textgrid:</code> scheme,</dd>
- * <dt>extension</dt>
- * <dd>is a filename extension derived using
- * {@link FileExtensionMap#getFirstExtension(String)} from the object's
- * <em>format</em> field. The extension is only included when the
- * <var>asParent</var> parameter is <code>false</code>.</dd>
- * </dl>
- * </li>
- * <li>For an {@linkplain #getFilename(IAggregationEntry, boolean) aggregation
- * entry}, the filename is created by first calculating the filename
- * {@linkplain #getFilename(ObjectType, boolean) for the object's metadata}. If
- * there is any {@linkplain #getBase(IAggregationEntry) base URI} for the given
- * entry, the filename is then {@linkplain URI#resolve(String) resolved} against
- * that.</li>
- * <li>the {@linkplain #getBase(IAggregationEntry) base URI} for an aggregation
- * entry is present iff the aggregation entry has a parent aggregation. If it is
- * present, it is the file name for the parent aggregation entry in the
- * <var>asParent</var> flavour with a <code>/</code> appended.
- * </ol>
- * 
- * @author Thorsten Vitt
- * 
- */
-public class DefaultFilenamePolicy implements IFilenamePolicy {
-	
-	
-	/**
-	 * Since this is a stateless implementation, clients can use the default instance
-	 */
-	public static final DefaultFilenamePolicy INSTANCE = new DefaultFilenamePolicy();
-
-	/**
-	 * These are the ICU transformation rules used for {@link #translate(String)}.
-	 */
-	protected static String TRANSFORM_RULES = "::Any-Latin;\n"
-			+ "Ä } [[:Upper:]] > AE;\n" + "Ä > Ae;\n" + "ä > ae;\n"
-			+ "Ö } [[:Upper:]] > OE;\n" + "Ö > Oe;\n" + "ö > oe;\n"
-			+ "Ü } [[:Upper:]] > UE;\n" + "Ü > Ue;\n" + "ü > ue;\n"
-			+ "ſ > s;\n" + "ẞ > SS;\n" + "::NFD();\n"
-			+ "[:Latin:]{[:Mn:]+} > ;\n" + "::NFC();\n" + "Æ > AE;\n"
-			+ "Ð > D;\n" + "Ø > O;\n" + "Þ > TH;\n" + "ß > ss;\n" + "æ > ae;\n"
-			+ "ð > d;\n" + "ø > o;\n" + "þ > th;\n" + "Đ > D;\n" + "đ > d;\n"
-			+ "Ħ > H;\n" + "ħ > h;\n" + "ı > i;\n" + "IJ > IJ;\n" + "ij > ij;\n"
-			+ "ĸ > q;\n" + "Ŀ > L;\n" + "ŀ > l;\n" + "Ł > L;\n" + "ł > l;\n"
-			+ "ʼn > \\'n;\n" + "Ŋ > N;\n" + "ŋ > n;\n" + "Œ > OE;\n"
-			+ "œ > oe;\n" + "Ŧ > T;\n" + "ŧ > t;\n" + "ſ > s;\n" + "ƀ > b;\n"
-			+ "Ɓ > B;\n" + "Ƃ > B;\n" + "ƃ > b;\n" + "Ƈ > C;\n" + "ƈ > c;\n"
-			+ "Ɖ > D;\n" + "Ɗ > D;\n" + "Ƌ > D;\n" + "ƌ > d;\n" + "Ɛ > E;\n"
-			+ "Æ‘ > F;\n" + "Æ’ > f;\n" + "Æ“ > G;\n" + "Æ• > hv;\n" + "Æ– > I;\n"
-			+ "Ɨ > I;\n" + "Ƙ > K;\n" + "ƙ > k;\n" + "ƚ > l;\n" + "Ɲ > N;\n"
-			+ "ƞ > n;\n" + "Ƣ > OI;\n" + "ƣ > oi;\n" + "Ƥ > P;\n" + "ƥ > p;\n"
-			+ "ƫ > t;\n" + "Ƭ > T;\n" + "ƭ > t;\n" + "Ʈ > T;\n" + "Ʋ > V;\n"
-			+ "Ƴ > Y;\n" + "ƴ > y;\n" + "Ƶ > Z;\n" + "ƶ > z;\n" + "DŽ > DZ;\n"
-			+ "Dž > Dz;\n" + "dž > dz;\n" + "LJ > LJ;\n" + "Lj > Lj;\n"
-			+ "lj > lj;\n" + "NJ > NJ;\n" + "Nj > Nj;\n" + "nj > nj;\n"
-			+ "Ǥ > G;\n" + "ǥ > g;\n" + "DZ > DZ;\n" + "Dz > Dz;\n" + "dz > dz;\n"
-			+ "ȡ > d;\n" + "Ȥ > Z;\n" + "ȥ > z;\n" + "ȴ > l;\n" + "ȵ > n;\n"
-			+ "ȶ > t;\n" + "ȷ > j;\n" + "ȸ > db;\n" + "ȹ > qp;\n" + "Ⱥ > A;\n"
-			+ "Ȼ > C;\n" + "ȼ > c;\n" + "Ƚ > L;\n" + "Ⱦ > T;\n" + "ȿ > s;\n"
-			+ "ɀ > z;\n" + "Ƀ > B;\n" + "Ʉ > U;\n" + "Ɇ > E;\n" + "ɇ > e;\n"
-			+ "Ɉ > J;\n" + "ɉ > j;\n" + "Ɍ > R;\n" + "ɍ > r;\n" + "Ɏ > Y;\n"
-			+ "ɏ > y;\n" + "ɓ > b;\n" + "ɕ > c;\n" + "ɖ > d;\n" + "ɗ > d;\n"
-			+ "É› > e;\n" + "ÉŸ > j;\n" + "É  > g;\n" + "É¡ > g;\n" + "É¢ > G;\n"
-			+ "ɦ > h;\n" + "ɧ > h;\n" + "ɨ > i;\n" + "ɪ > I;\n" + "ɫ > l;\n"
-			+ "ɬ > l;\n" + "ɭ > l;\n" + "ɱ > m;\n" + "ɲ > n;\n" + "ɳ > n;\n"
-			+ "ɴ > N;\n" + "ɶ > OE;\n" + "ɼ > r;\n" + "ɽ > r;\n" + "ɾ > r;\n"
-			+ "ʀ > R;\n" + "ʂ > s;\n" + "ʈ > t;\n" + "ʉ > u;\n" + "ʋ > v;\n"
-			+ "ʏ > Y;\n" + "ʐ > z;\n" + "ʑ > z;\n" + "ʙ > B;\n" + "ʛ > G;\n"
-			+ "ʜ > H;\n" + "ʝ > j;\n" + "ʟ > L;\n" + "ʠ > q;\n" + "ʣ > dz;\n"
-			+ "ʥ > dz;\n" + "ʦ > ts;\n" + "ʪ > ls;\n" + "ʫ > lz;\n"
-			+ "ᴀ > A;\n" + "ᴁ > AE;\n" + "ᴃ > B;\n" + "ᴄ > C;\n" + "ᴅ > D;\n"
-			+ "ᴆ > D;\n" + "ᴇ > E;\n" + "ᴊ > J;\n" + "ᴋ > K;\n" + "ᴌ > L;\n"
-			+ "ᴍ > M;\n" + "ᴏ > O;\n" + "ᴘ > P;\n" + "ᴛ > T;\n" + "ᴜ > U;\n"
-			+ "ᴠ > V;\n" + "ᴡ > W;\n" + "ᴢ > Z;\n" + "ᵫ > ue;\n" + "ᵬ > b;\n"
-			+ "ᵭ > d;\n" + "ᵮ > f;\n" + "ᵯ > m;\n" + "ᵰ > n;\n" + "ᵱ > p;\n"
-			+ "ᵲ > r;\n" + "ᵳ > r;\n" + "ᵴ > s;\n" + "ᵵ > t;\n" + "ᵶ > z;\n"
-			+ "ᵺ > th;\n" + "ᵻ > I;\n" + "ᵽ > p;\n" + "ᵾ > U;\n" + "ᶀ > b;\n"
-			+ "ᶁ > d;\n" + "ᶂ > f;\n" + "ᶃ > g;\n" + "ᶄ > k;\n" + "ᶅ > l;\n"
-			+ "ᶆ > m;\n" + "ᶇ > n;\n" + "ᶈ > p;\n" + "ᶉ > r;\n" + "ᶊ > s;\n"
-			+ "ᶌ > v;\n" + "ᶍ > x;\n" + "ᶎ > z;\n" + "ᶏ > a;\n" + "ᶑ > d;\n"
-			+ "ᶒ > e;\n" + "ᶓ > e;\n" + "ᶖ > i;\n" + "ᶙ > u;\n" + "ẚ > a;\n"
-			+ "ẜ > s;\n" + "ẝ > s;\n" + "ẞ > SS;\n" + "Ỻ > LL;\n" + "ỻ > ll;\n"
-			+ "Ỽ > V;\n" + "ỽ > v;\n" + "Ỿ > Y;\n" + "ỿ > y;\n" + "ff > ff;\n"
-			+ "fi > fi;\n" + "fl > fl;\n" + "ffi > ffi;\n" + "ffl > ffl;\n"
-			+ "ſt > st;\n" + "st > st;\n" + "A > A;\n" + "B > B;\n" + "C > C;\n"
-			+ "D > D;\n" + "E > E;\n" + "F > F;\n" + "G > G;\n" + "H > H;\n"
-			+ "I > I;\n" + "J > J;\n" + "K > K;\n" + "L > L;\n" + "M > M;\n"
-			+ "N > N;\n" + "O > O;\n" + "P > P;\n" + "Q > Q;\n" + "R > R;\n"
-			+ "S > S;\n" + "T > T;\n" + "U > U;\n" + "V > V;\n" + "W > W;\n"
-			+ "X > X;\n" + "Y > Y;\n" + "Z > Z;\n" + "a > a;\n" + "b > b;\n"
-			+ "c > c;\n" + "d > d;\n" + "e > e;\n" + "f > f;\n" + "g > g;\n"
-			+ "h > h;\n" + "i > i;\n" + "j > j;\n" + "k > k;\n" + "l > l;\n"
-			+ "m > m;\n" + "n > n;\n" + "o > o;\n" + "p > p;\n" + "q > q;\n"
-			+ "r > r;\n" + "s > s;\n" + "t > t;\n" + "u > u;\n" + "v > v;\n"
-			+ "w > w;\n" + "x > x;\n" + "y > y;\n" + "z > z;\n"
-			+ "© > '(C)';\n" + "® > '(R)';\n" + "₠ > CE;\n" + "₢ > Cr;\n"
-			+ "₣ > Fr'.';\n" + "₤ > L'.';\n" + "₧ > Pts;\n" + "₹ > Rs;\n"
-			+ "℀ > a'_c';\n" + "℁ > a'_s';\n" + "ℂ > C;\n" + "℅ > c'_o';\n"
-			+ "℆ > c'_u';\n" + "ℊ > g;\n" + "ℋ > H;\n" + "ℌ > x;\n"
-			+ "ℍ > H;\n" + "ℎ > h;\n" + "ℐ > I;\n" + "ℑ > I;\n" + "ℒ > L;\n"
-			+ "â„“ > l;\n" + "â„• > N;\n" + "â„– > No;\n" + "â„™ > P;\n" + "â„š > Q;\n"
-			+ "ℛ > R;\n" + "ℜ > R;\n" + "ℝ > R;\n" + "℞ > Rx;\n" + "℡ > TEL;\n"
-			+ "ℤ > Z;\n" + "ℨ > Z;\n" + "ℬ > B;\n" + "ℭ > C;\n" + "ℯ > e;\n"
-			+ "ℰ > E;\n" + "ℱ > F;\n" + "ℳ > M;\n" + "ℴ > o;\n" + "ℹ > i;\n"
-			+ "â„» > FAX;\n" + "â…… > D;\n" + "â…† > d;\n" + "â…‡ > e;\n" + "â…ˆ > i;\n"
-			+ "ⅉ > j;\n" + "㍱ > hPa;\n" + "㍲ > da;\n" + "㍳ > AU;\n"
-			+ "㍴ > bar;\n" + "㍵ > oV;\n" + "㍶ > pc;\n" + "㍷ > dm;\n"
-			+ "㍺ > IU;\n" + "㎀ > pA;\n" + "㎁ > nA;\n" + "㎃ > mA;\n"
-			+ "㎄ > kA;\n" + "㎅ > KB;\n" + "㎆ > MB;\n" + "㎇ > GB;\n"
-			+ "㎈ > cal;\n" + "㎉ > kcal;\n" + "㎊ > pF;\n" + "㎋ > nF;\n"
-			+ "㎎ > mg;\n" + "㎏ > kg;\n" + "㎐ > Hz;\n" + "㎑ > kHz;\n"
-			+ "㎒ > MHz;\n" + "㎓ > GHz;\n" + "㎔ > THz;\n" + "㎙ > fm;\n"
-			+ "㎚ > nm;\n" + "㎜ > mm;\n" + "㎝ > cm;\n" + "㎞ > km;\n"
-			+ "㎧ > m'_s';\n" + "㎩ > Pa;\n" + "㎪ > kPa;\n" + "㎫ > MPa;\n"
-			+ "㎬ > GPa;\n" + "㎭ > rad;\n" + "㎮ > rad'_s';\n" + "㎰ > ps;\n"
-			+ "㎱ > ns;\n" + "㎳ > ms;\n" + "㎴ > pV;\n" + "㎵ > nV;\n"
-			+ "㎷ > mV;\n" + "㎸ > kV;\n" + "㎹ > MV;\n" + "㎺ > pW;\n"
-			+ "㎻ > nW;\n" + "㎽ > mW;\n" + "㎾ > kW;\n" + "㎿ > MW;\n"
-			+ "㏂ > a'.m.';\n" + "㏃ > Bq;\n" + "㏄ > cc;\n" + "㏅ > cd;\n"
-			+ "㏆ > C'_kg';\n" + "㏇ > Co'.';\n" + "㏈ > dB;\n" + "㏉ > Gy;\n"
-			+ "㏊ > ha;\n" + "㏋ > HP;\n" + "㏌ > in;\n" + "㏍ > KK;\n"
-			+ "㏎ > KM;\n" + "㏏ > kt;\n" + "㏐ > lm;\n" + "㏑ > ln;\n"
-			+ "㏒ > log;\n" + "㏓ > lx;\n" + "㏔ > mb;\n" + "㏕ > mil;\n"
-			+ "㏖ > mol;\n" + "㏗ > pH;\n" + "㏘ > p'.m.';\n" + "㏙ > PPM;\n"
-			+ "㏚ > PR;\n" + "㏛ > sr;\n" + "㏜ > Sv;\n" + "㏝ > Wb;\n"
-			+ "㏞ > V'_m';\n" + "㏟ > A'_m';\n" + "⒜ > '(a)';\n" + "⒝ > '(b)';\n"
-			+ "â’ž > '(c)';\n" + "â’Ÿ > '(d)';\n" + "â’  > '(e)';\n" + "â’¡ > '(f)';\n"
-			+ "â’¢ > '(g)';\n" + "â’£ > '(h)';\n" + "â’¤ > '(i)';\n" + "â’¥ > '(j)';\n"
-			+ "â’¦ > '(k)';\n" + "â’§ > '(l)';\n" + "â’¨ > '(m)';\n" + "â’© > '(n)';\n"
-			+ "â’ª > '(o)';\n" + "â’« > '(p)';\n" + "â’¬ > '(q)';\n" + "â’­ > '(r)';\n"
-			+ "â’® > '(s)';\n" + "â’¯ > '(t)';\n" + "â’° > '(u)';\n" + "â’± > '(v)';\n"
-			+ "â’² > '(w)';\n" + "â’³ > '(x)';\n" + "â’´ > '(y)';\n" + "â’µ > '(z)';\n"
-			+ "â…  > I;\n" + "â…¡ > II;\n" + "â…¢ > III;\n" + "â…£ > IV;\n"
-			+ "â…¤ > V;\n" + "â…¥ > VI;\n" + "â…¦ > VII;\n" + "â…§ > VIII;\n"
-			+ "â…¨ > IX;\n" + "â…© > X;\n" + "â…ª > XI;\n" + "â…« > XII;\n"
-			+ "â…¬ > L;\n" + "â…­ > C;\n" + "â…® > D;\n" + "â…¯ > M;\n" + "â…° > i;\n"
-			+ "â…± > ii;\n" + "â…² > iii;\n" + "â…³ > iv;\n" + "â…´ > v;\n"
-			+ "â…µ > vi;\n" + "â…¶ > vii;\n" + "â…· > viii;\n" + "â…¸ > ix;\n"
-			+ "â…¹ > x;\n" + "â…º > xi;\n" + "â…» > xii;\n" + "â…¼ > l;\n" + "â…½ > c;\n"
-			+ "ⅾ > d;\n" + "ⅿ > m;\n" + "¼ > '_1_4';\n" + "½ > '_1_2';\n"
-			+ "¾ > '_3_4';\n" + "⅓ > '_1_3';\n" + "⅔ > '_2_3';\n"
-			+ "â…• > '_1_5';\n" + "â…– > '_2_5';\n" + "â…— > '_3_5';\n"
-			+ "â…˜ > '_4_5';\n" + "â…™ > '_1_6';\n" + "â…š > '_5_6';\n"
-			+ "⅛ > '_1_8';\n" + "⅜ > '_3_8';\n" + "⅝ > '_5_8';\n"
-			+ "â…ž > '_7_8';\n" + "â…Ÿ > '_1_';\n" + "â‘´ > '(1)';\n"
-			+ "⑵ > '(2)';\n" + "⑶ > '(3)';\n" + "⑷ > '(4)';\n" + "⑸ > '(5)';\n"
-			+ "⑹ > '(6)';\n" + "⑺ > '(7)';\n" + "⑻ > '(8)';\n" + "⑼ > '(9)';\n"
-			+ "⑽ > '(10)';\n" + "⑾ > '(11)';\n" + "⑿ > '(12)';\n"
-			+ "⒀ > '(13)';\n" + "⒁ > '(14)';\n" + "⒂ > '(15)';\n"
-			+ "â’ƒ > '(16)';\n" + "â’„ > '(17)';\n" + "â’… > '(18)';\n"
-			+ "â’† > '(19)';\n" + "â’‡ > '(20)';\n" + "â’ˆ > 1'.';\n" + "â’‰ > 2'.';\n"
-			+ "⒊ > 3'.';\n" + "⒋ > 4'.';\n" + "⒌ > 5'.';\n" + "⒍ > 6'.';\n"
-			+ "⒎ > 7'.';\n" + "⒏ > 8'.';\n" + "⒐ > 9'.';\n" + "⒑ > 10'.';\n"
-			+ "â’’ > 11'.';\n" + "â’“ > 12'.';\n" + "â’” > 13'.';\n" + "â’• > 14'.';\n"
-			+ "â’– > 15'.';\n" + "â’— > 16'.';\n" + "â’˜ > 17'.';\n" + "â’™ > 18'.';\n"
-			+ "⒚ > 19'.';\n" + "⒛ > 20'.';\n" + "〇 > 0;\n" + "0 > 0;\n"
-			+ "1 > 1;\n" + "2 > 2;\n" + "3 > 3;\n" + "4 > 4;\n" + "5 > 5;\n"
-			+ "6 > 6;\n" + "7 > 7;\n" + "8 > 8;\n" + "9 > 9;\n" + "  > '_';\n"
-			+ "  > '_';\n" + "  > '_';\n" + "  > '_';\n" + "  > '_';\n"
-			+ "  > '_';\n" + "  > '_';\n" + "  > '_';\n" + "  > '_';\n"
-			+ "  > '_';\n" + "  > '_';\n" + "  > '_';\n"
-			+ "{ [^\\r\\n,0-9A-Za-z\\$\\(\\)!._-] } > \\_\n" + "";
-	private static Transliterator transliterator;
-
-	/**
-	 * Returns (and creates on demand) an ICU transliterator as used in {@link #translate(String)} 
-	 * @return
-	 */
-	protected static Transliterator getTransliterator() {
-		if (transliterator == null)
-			transliterator = Transliterator.createFromRules("TgFilenames",
-					TRANSFORM_RULES, Transliterator.FORWARD);
-		return transliterator;
-	}
-
-	@Override
-	public String translate(final String title) {
-		return getTransliterator().transform(title);
-	}
-
-	@Override
-	public String getFilename(final ObjectType object, final boolean asParent) {
-		final String title = translate(object.getGeneric().getProvided()
-				.getTitle().get(0));
-		final String uri = object.getGeneric().getGenerated().getTextgridUri()
-				.getValue().substring(9); // remove "textgrid:"
-		final String format = object.getGeneric().getProvided().getFormat();
-		final String extension = FileExtensionMap.getInstance()
-				.getFirstExtension(format).or("dat");
-
-		final StringBuilder result = new StringBuilder(title);
-		result.append('.').append(uri);
-		if (!asParent) {
-			result.append('.').append(extension);
-		} else {
-			result.append('/');
-		}
-
-		return result.toString();
-	}
-
-	@Override
-	public URI getFilename(final IAggregationEntry entry, final boolean asParent) {
-		final String localName = getFilename(entry.getMetadata(), asParent);
-		final URI result;
-		final Optional<URI> base = getBase(entry);
-
-		if (base.isPresent())
-			result = base.get().resolve(localName);
-		else
-			result = URI.create(localName);
-		return result;
-	}
-
-	@Override
-	public Optional<URI> getBase(final IAggregationEntry entry) {
-		if (entry.getParent().isPresent())
-			return Optional.of(getFilename(entry.getParent().get(), true));
-		else
-			return Optional.absent();
-	}
-	
-
-}
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/DefaultMetaFilenamePolicy.java b/src/main/java/info/textgrid/services/aggregator/tree/DefaultMetaFilenamePolicy.java
deleted file mode 100644
index 579d7b4a455499b3b314f926465b184b3276c905..0000000000000000000000000000000000000000
--- a/src/main/java/info/textgrid/services/aggregator/tree/DefaultMetaFilenamePolicy.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import info.textgrid.namespaces.metadata.core._2010.ObjectType;
-
-import java.net.URI;
-
-import com.google.common.base.Optional;
-
-/**
- * This filename policy augments a given filename policy by appending ".meta"
- * to every generated filename.
- */
-public class DefaultMetaFilenamePolicy implements IFilenamePolicy {
-
-	private IFilenamePolicy filenamePolicy;
-
-	public DefaultMetaFilenamePolicy(final IFilenamePolicy filenamePolicy) {
-		this.filenamePolicy = filenamePolicy;
-	}
-
-	@Override
-	public String translate(final String title) {
-		return filenamePolicy.translate(title);
-	}
-
-	@Override
-	public String getFilename(final ObjectType object, final boolean asParent) {
-		return filenamePolicy.getFilename(object, asParent).concat(".meta");
-	}
-
-	@Override
-	public URI getFilename(final IAggregationEntry entry, final boolean asParent) throws IllegalStateException {
-			return URI.create(filenamePolicy.getFilename(entry, asParent).toString().concat(".meta"));
-	}
-
-	@Override
-	public Optional<URI> getBase(final IAggregationEntry entry) {
-		return filenamePolicy.getBase(entry);
-	}
-
-}
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/FileExtensionMap.java b/src/main/java/info/textgrid/services/aggregator/tree/FileExtensionMap.java
deleted file mode 100644
index acb903e93661f2405d21f2baf725d6f7174718d3..0000000000000000000000000000000000000000
--- a/src/main/java/info/textgrid/services/aggregator/tree/FileExtensionMap.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
-import java.nio.charset.Charset;
-import java.text.MessageFormat;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableCollection;
-import com.google.common.collect.ImmutableListMultimap;
-import com.google.common.collect.ImmutableMultimap;
-import com.google.common.collect.ImmutableMultimap.Builder;
-import com.sun.istack.logging.Logger;
-
-/**
- * Parses the (supplied) mime.types file and creates a map of all entries that
- * specify both a MIME type and a file name.
- */
-public class FileExtensionMap {
-
-	private final ImmutableMultimap<String, String> map;
-	private static Logger logger = Logger.getLogger(FileExtensionMap.class);
-
-	protected FileExtensionMap() throws IOException {
-		
-		// Comments start with # and reach to the end of line.
-		// A matching line contains of a mime type and one or more extensions
-		// comments are stripped
-		// <whitespace>? <mimetype>¹ <whitespace> <extensions>² <whitespace>? <comment>? 
-		final Pattern mapLine = Pattern.compile("^[ \t]*([^# \t]+)[ \t]*([^#]+)[ \t]*(#.*)?$");
-		final Pattern space = Pattern.compile("[ \t]+");
-		final LineNumberReader reader = new LineNumberReader(
-				new InputStreamReader(getClass().getClassLoader()
-						.getResourceAsStream("mime.types"),
-						Charset.forName("UTF-8")));
-		final Builder<String, String> builder = ImmutableListMultimap.builder();
-		String line = reader.readLine();
-		while (line != null) {
-			final Matcher matcher = mapLine.matcher(line);
-			if (matcher.matches() && matcher.groupCount() >= 2) {
-				builder.putAll(matcher.group(1), space.split(matcher.group(2)));
-			}
-			line = reader.readLine();
-		}
-		map = builder.build();
-		logger.fine(MessageFormat.format(
-				"Read {0} lines from the mime.types file, parsed {1} mappings",
-				reader.getLineNumber(), map.size()));
-		reader.close();
-	}
-
-	public ImmutableCollection<String> getExtensions(final String mimeType) {
-		return map.get(mimeType);
-	}
-
-	public Optional<String> getFirstExtension(final String mimeType) {
-		final ImmutableCollection<String> extensions = map.get(mimeType);
-		if (!extensions.isEmpty())
-			return Optional.of(extensions.iterator().next());
-		else
-			return Optional.absent();
-	}
-
-	public String addExtension(final String plainFileName, final String mimeType) {
-		final Optional<String> extension = getFirstExtension(mimeType);
-		if (extension.isPresent())
-			return plainFileName.concat(".").concat(extension.get());
-		else
-			return plainFileName;
-	}
-
-	private static FileExtensionMap instance;
-
-	public static FileExtensionMap getInstance() {
-		if (instance == null) {
-			try {
-				instance = new FileExtensionMap();
-			} catch (final IOException e) {
-				throw Throwables.propagate(e);
-			}
-		}
-		return instance;
-	}
-
-}
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/IAggregation.java b/src/main/java/info/textgrid/services/aggregator/tree/IAggregation.java
deleted file mode 100644
index 4a34da128e8f1c4f17cc6f4cf1a113550c10ab22..0000000000000000000000000000000000000000
--- a/src/main/java/info/textgrid/services/aggregator/tree/IAggregation.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import com.google.common.collect.ImmutableList;
-
-public interface IAggregation extends IAggregationEntry {
-
-	public abstract ImmutableList<? extends IAggregationEntry> getChildren();
-
-}
\ No newline at end of file
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/IAggregationEntry.java b/src/main/java/info/textgrid/services/aggregator/tree/IAggregationEntry.java
deleted file mode 100644
index 278dcb96724c6062affa0ddbfea9248ccc70c05d..0000000000000000000000000000000000000000
--- a/src/main/java/info/textgrid/services/aggregator/tree/IAggregationEntry.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import info.textgrid.namespaces.metadata.core._2010.ObjectType;
-
-import java.net.URI;
-
-import com.google.common.base.Optional;
-
-public interface IAggregationEntry {
-
-	public abstract Optional<? extends IAggregation> getParent();
-
-	public abstract ObjectType getMetadata();
-
-	public abstract URI getTextGridURI();
-
-}
\ No newline at end of file
diff --git a/src/main/java/info/textgrid/services/aggregator/tree/IFilenamePolicy.java b/src/main/java/info/textgrid/services/aggregator/tree/IFilenamePolicy.java
deleted file mode 100644
index 48ea557c55f0a971983f1e7bbaa722384d53d626..0000000000000000000000000000000000000000
--- a/src/main/java/info/textgrid/services/aggregator/tree/IFilenamePolicy.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import info.textgrid.namespaces.metadata.core._2010.ObjectType;
-
-import java.net.URI;
-
-import com.google.common.base.Optional;
-
-/**
- * A filename policy offers a way to generate file names from entries in
- * aggregation structures, from TextGrid metadata, or from simple strings.
- * 
- * <p>
- * Implementors should make sure that the same instance of an
- * {@link IFilenamePolicy} implementation always returns the same filename
- * candidate on the same arguments. Filename stability across different 
- * policy instances is not required.
- * </p>
- * 
- * @see DefaultFilenamePolicy default implementation
- * @author vitt
- * 
- */
-public interface IFilenamePolicy {
-
-	/**
-	 * Creates a valid file name part for the given string. This may involve
-	 * replacing or removing parts of the string, shortening the string etc.
-	 * 
-	 * @param source
-	 *            The string that should be translated
-	 * @return A string that conforms to the rules of this policy
-	 */
-	public String translate(final String source);
-
-	/**
-	 * Generates a file name candidate for the object described by the given
-	 * metadata.
-	 * 
-	 * @param object
-	 *            The object with the metadata for which to generate a filename
-	 * @param asParent
-	 *            If true, the generated file name should be the parent for a
-	 *            different filename. Implementors might, e.g., want to leave
-	 *            out an extension.
-	 * @return The generated filename.
-	 */
-	public String getFilename(final ObjectType object, final boolean asParent);
-
-	/**
-	 * Generates a file name for the aggregation entry described by the given
-	 * metadata.
-	 * 
-	 * @see #getFilename(ObjectType, boolean)
-	 */
-	public URI getFilename(final IAggregationEntry entry, final boolean asParent);
-
-	/**
-	 * Tries to generate a base URI for the given aggregation entry.
-	 */
-	public abstract Optional<URI> getBase(final IAggregationEntry entry);
-
-}
diff --git a/src/main/resources/mime.types b/src/main/resources/mime.types
deleted file mode 100644
index a284d4c3b0f82c54ffb22a143921e4af2470f5ce..0000000000000000000000000000000000000000
--- a/src/main/resources/mime.types
+++ /dev/null
@@ -1,846 +0,0 @@
-###############################################################################
-#
-#  MIME-TYPES and the extensions that represent them
-#
-#  The format of this file is a MIME type on the left and zero or more
-#  filename extensions on the right.  Programs using this file will map
-#  files ending with those extensions to the associated type.
-#
-#  This file has been taken from Debian's "mime-support" package and 
-#  adapted to TextGrid use.
-#
-#  Note: Compression schemes like "gzip", "bzip", and "compress" are not
-#  actually "mime-types".  They are "encodings" and hence must _not_ have
-#  entries in this file to map their extensions.  The "mime-type" of an
-#  encoded file refers to the type of data that has been encoded, not the
-#  type of encoding.
-#
-###############################################################################
-
-# TextGrid specific types first
-text/tg.aggregation+xml			aggregation	# Aggregation
-text/tg.edition+tg.aggregation+xml	edition		# Edition
-text/tg.collection+tg.aggregation+xml	collection	# Kollektion
-text/xsd+xml				xsd		# XML Schema
-text/css				css		# Cascading Stylesheet (CSS)
-text/plain				txt		# Plain Text
-text/tg.imex+xml			imex		# Import-/Export-Mapping
-application/zip				zip		# ZIP-Archiv
-text/tg.projectfile+xml			tgp		# Project Configuration
-unknown/unknown				tgo		# Unknown
-image/x-unknown				null		# Image
-text/tg.work+xml			work		# Work
-text/linkeditorlinkedfile		tgl		# Text-Bild-Link-Objekt
-image/jpeg				jpg		# JPEG-Bild
-image/tiff				tiff		# TIFF-Bild
-image/png				png		# PNG-Bild
-image/gif				gif		# GIF image
-text/tg.workflow+xml			tgwf		# TextGrid-Workflow-Dokument
-text/gwdl.workflow+xml			gwdl		# TextGrid-Workflow-Dokument (GWDL)
-text/tg.servicedescription+xml		service		# TextGrid-Dienstebeschreibung
-application/xml-dtd			dtd		# DTD
-text/xml				xml		# XML Document
-text/xml+xslt				xsl		# XSLT Stylesheet
-
-
-# Generic stuff
-application/activemessage
-application/andrew-inset			ez
-application/annodex				anx
-application/applefile
-application/atom+xml				atom
-application/atomcat+xml				atomcat
-application/atomicmail
-application/atomserv+xml			atomsrv
-application/batch-SMTP
-application/bbolin				lin
-application/beep+xml
-application/cals-1840
-application/commonground
-application/cu-seeme				cu
-application/cybercash
-application/davmount+xml			davmount
-application/dca-rft
-application/dec-dx
-application/dicom				dcm
-application/docbook+xml
-application/dsptype				tsp
-application/dvcs
-application/ecmascript				es
-application/edi-consent
-application/edi-x12
-application/edifact
-application/eshop
-application/font-tdpfr
-application/futuresplash			spl
-application/ghostview
-application/hta					hta
-application/http
-application/hyperstudio
-application/iges
-application/index
-application/index.cmd
-application/index.obj
-application/index.response
-application/index.vnd
-application/iotp
-application/ipp
-application/isup
-application/java-archive			jar
-application/java-serialized-object		ser
-application/java-vm				class
-application/javascript				js
-application/json				json
-application/m3g					m3g
-application/mac-binhex40			hqx
-application/mac-compactpro			cpt
-application/macwriteii
-application/marc
-application/mathematica				nb nbp
-application/mbox				mbox
-application/ms-tnef
-application/msaccess				mdb
-application/msword				doc dot
-application/mxf					mxf
-application/news-message-id
-application/news-transmission
-application/ocsp-request
-application/ocsp-response
-application/octet-stream			bin
-application/oda					oda
-application/ogg					ogx
-application/onenote				one onetoc2 onetmp onepkg
-application/parityfec
-application/pdf					pdf
-application/pgp-encrypted			pgp
-application/pgp-keys				key
-application/pgp-signature			sig
-application/pics-rules				prf
-application/pkcs10
-application/pkcs7-mime
-application/pkcs7-signature
-application/pkix-cert
-application/pkix-crl
-application/pkixcmp
-application/postscript				ps ai eps epsi epsf eps2 eps3
-application/prs.alvestrand.titrax-sheet
-application/prs.cww
-application/prs.nprend
-application/qsig
-application/rar					rar
-application/rdf+xml				rdf
-application/remote-printing
-application/riscos
-application/rtf					rtf
-application/sdp
-application/set-payment
-application/set-payment-initiation
-application/set-registration
-application/set-registration-initiation
-application/sgml
-application/sgml-open-catalog
-application/sieve
-application/sla					stl
-application/slate
-application/smil				smi smil
-application/timestamp-query
-application/timestamp-reply
-application/vemmi
-application/whoispp-query
-application/whoispp-response
-application/wita
-application/x400-bp
-application/xhtml+xml				xhtml xht
-application/xml					xml xsl xsd
-application/xml-dtd
-application/xml-external-parsed-entity
-application/xspf+xml				xspf
-application/zip					zip
-application/vnd.3M.Post-it-Notes
-application/vnd.accpac.simply.aso
-application/vnd.accpac.simply.imp
-application/vnd.acucobol
-application/vnd.aether.imp
-application/vnd.android.package-archive						apk
-application/vnd.anser-web-certificate-issue-initiation
-application/vnd.anser-web-funds-transfer-initiation
-application/vnd.audiograph
-application/vnd.bmi
-application/vnd.businessobjects
-application/vnd.canon-cpdl
-application/vnd.canon-lips
-application/vnd.cinderella							cdy
-application/vnd.claymore
-application/vnd.commerce-battelle
-application/vnd.commonspace
-application/vnd.comsocaller
-application/vnd.contact.cmsg
-application/vnd.cosmocaller
-application/vnd.ctc-posml
-application/vnd.cups-postscript
-application/vnd.cups-raster
-application/vnd.cups-raw
-application/vnd.cybank
-application/vnd.dna
-application/vnd.dpgraph
-application/vnd.dxr
-application/vnd.ecdis-update
-application/vnd.ecowin.chart
-application/vnd.ecowin.filerequest
-application/vnd.ecowin.fileupdate
-application/vnd.ecowin.series
-application/vnd.ecowin.seriesrequest
-application/vnd.ecowin.seriesupdate
-application/vnd.enliven
-application/vnd.epson.esf
-application/vnd.epson.msf
-application/vnd.epson.quickanime
-application/vnd.epson.salt
-application/vnd.epson.ssf
-application/vnd.ericsson.quickcall
-application/vnd.eudora.data
-application/vnd.fdf
-application/vnd.ffsns
-application/vnd.flographit
-application/vnd.framemaker
-application/vnd.fsc.weblaunch
-application/vnd.fujitsu.oasys
-application/vnd.fujitsu.oasys2
-application/vnd.fujitsu.oasys3
-application/vnd.fujitsu.oasysgp
-application/vnd.fujitsu.oasysprs
-application/vnd.fujixerox.ddd
-application/vnd.fujixerox.docuworks
-application/vnd.fujixerox.docuworks.binder
-application/vnd.fut-misnet
-application/vnd.google-earth.kml+xml						kml
-application/vnd.google-earth.kmz						kmz
-application/vnd.grafeq
-application/vnd.groove-account
-application/vnd.groove-identity-message
-application/vnd.groove-injector
-application/vnd.groove-tool-message
-application/vnd.groove-tool-template
-application/vnd.groove-vcard
-application/vnd.hhe.lesson-player
-application/vnd.hp-HPGL
-application/vnd.hp-PCL
-application/vnd.hp-PCLXL
-application/vnd.hp-hpid
-application/vnd.hp-hps
-application/vnd.httphone
-application/vnd.hzn-3d-crossword
-application/vnd.ibm.MiniPay
-application/vnd.ibm.afplinedata
-application/vnd.ibm.modcap
-application/vnd.informix-visionary
-application/vnd.intercon.formnet
-application/vnd.intertrust.digibox
-application/vnd.intertrust.nncp
-application/vnd.intu.qbo
-application/vnd.intu.qfx
-application/vnd.irepository.package+xml
-application/vnd.is-xpr
-application/vnd.japannet-directory-service
-application/vnd.japannet-jpnstore-wakeup
-application/vnd.japannet-payment-wakeup
-application/vnd.japannet-registration
-application/vnd.japannet-registration-wakeup
-application/vnd.japannet-setstore-wakeup
-application/vnd.japannet-verification
-application/vnd.japannet-verification-wakeup
-application/vnd.koan
-application/vnd.lotus-1-2-3
-application/vnd.lotus-approach
-application/vnd.lotus-freelance
-application/vnd.lotus-notes
-application/vnd.lotus-organizer
-application/vnd.lotus-screencam
-application/vnd.lotus-wordpro
-application/vnd.mcd
-application/vnd.mediastation.cdkey
-application/vnd.meridian-slingshot
-application/vnd.mif
-application/vnd.minisoft-hp3000-save
-application/vnd.mitsubishi.misty-guard.trustweb
-application/vnd.mobius.daf
-application/vnd.mobius.dis
-application/vnd.mobius.msl
-application/vnd.mobius.plc
-application/vnd.mobius.txf
-application/vnd.motorola.flexsuite
-application/vnd.motorola.flexsuite.adsi
-application/vnd.motorola.flexsuite.fis
-application/vnd.motorola.flexsuite.gotap
-application/vnd.motorola.flexsuite.kmr
-application/vnd.motorola.flexsuite.ttc
-application/vnd.motorola.flexsuite.wem
-application/vnd.mozilla.xul+xml							xul
-application/vnd.ms-artgalry
-application/vnd.ms-asf
-application/vnd.ms-excel							xls xlb xlt
-application/vnd.ms-excel.addin.macroEnabled.12					xlam
-application/vnd.ms-excel.sheet.binary.macroEnabled.12				xlsb
-application/vnd.ms-excel.sheet.macroEnabled.12					xlsm
-application/vnd.ms-excel.template.macroEnabled.12				xltm
-application/vnd.ms-fontobject							eot
-application/vnd.ms-lrm
-application/vnd.ms-officetheme							thmx
-application/vnd.ms-pki.seccat							cat
-#application/vnd.ms-pki.stl							stl
-application/vnd.ms-powerpoint							ppt pps
-application/vnd.ms-powerpoint.addin.macroEnabled.12				ppam
-application/vnd.ms-powerpoint.presentation.macroEnabled.12			pptm
-application/vnd.ms-powerpoint.slide.macroEnabled.12				sldm
-application/vnd.ms-powerpoint.slideshow.macroEnabled.12				ppsm
-application/vnd.ms-powerpoint.template.macroEnabled.12				potm
-application/vnd.ms-project
-application/vnd.ms-tnef
-application/vnd.ms-word.document.macroEnabled.12				docm
-application/vnd.ms-word.template.macroEnabled.12				dotm
-application/vnd.ms-works
-application/vnd.mseq
-application/vnd.msign
-application/vnd.music-niff
-application/vnd.musician
-application/vnd.netfpx
-application/vnd.noblenet-directory
-application/vnd.noblenet-sealer
-application/vnd.noblenet-web
-application/vnd.novadigm.EDM
-application/vnd.novadigm.EDX
-application/vnd.novadigm.EXT
-application/vnd.oasis.opendocument.chart					odc
-application/vnd.oasis.opendocument.database					odb
-application/vnd.oasis.opendocument.formula					odf
-application/vnd.oasis.opendocument.graphics					odg
-application/vnd.oasis.opendocument.graphics-template				otg
-application/vnd.oasis.opendocument.image					odi
-application/vnd.oasis.opendocument.presentation					odp
-application/vnd.oasis.opendocument.presentation-template			otp
-application/vnd.oasis.opendocument.spreadsheet					ods
-application/vnd.oasis.opendocument.spreadsheet-template				ots
-application/vnd.oasis.opendocument.text						odt
-application/vnd.oasis.opendocument.text-master					odm
-application/vnd.oasis.opendocument.text-template				ott
-application/vnd.oasis.opendocument.text-web					oth
-application/vnd.openxmlformats-officedocument.presentationml.presentation	pptx
-application/vnd.openxmlformats-officedocument.presentationml.slide		sldx
-application/vnd.openxmlformats-officedocument.presentationml.slideshow		ppsx
-application/vnd.openxmlformats-officedocument.presentationml.template		potx
-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet		xlsx
-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet		xlsx
-application/vnd.openxmlformats-officedocument.spreadsheetml.template		xltx
-application/vnd.openxmlformats-officedocument.spreadsheetml.template		xltx
-application/vnd.openxmlformats-officedocument.wordprocessingml.document		docx
-application/vnd.openxmlformats-officedocument.wordprocessingml.template		dotx
-application/vnd.osa.netdeploy
-application/vnd.palm
-application/vnd.pg.format
-application/vnd.pg.osasli
-application/vnd.powerbuilder6
-application/vnd.powerbuilder6-s
-application/vnd.powerbuilder7
-application/vnd.powerbuilder7-s
-application/vnd.powerbuilder75
-application/vnd.powerbuilder75-s
-application/vnd.previewsystems.box
-application/vnd.publishare-delta-tree
-application/vnd.pvi.ptid1
-application/vnd.pwg-xhtml-print+xml
-application/vnd.rapid
-application/vnd.rim.cod								cod
-application/vnd.s3sms
-application/vnd.seemail
-application/vnd.shana.informed.formdata
-application/vnd.shana.informed.formtemplate
-application/vnd.shana.informed.interchange
-application/vnd.shana.informed.package
-application/vnd.smaf								mmf
-application/vnd.sss-cod
-application/vnd.sss-dtf
-application/vnd.sss-ntf
-application/vnd.stardivision.calc						sdc
-application/vnd.stardivision.chart						sds
-application/vnd.stardivision.draw						sda
-application/vnd.stardivision.impress						sdd
-application/vnd.stardivision.math						sdf
-application/vnd.stardivision.writer						sdw
-application/vnd.stardivision.writer-global					sgl
-application/vnd.street-stream
-application/vnd.sun.xml.calc							sxc
-application/vnd.sun.xml.calc.template						stc
-application/vnd.sun.xml.draw							sxd
-application/vnd.sun.xml.draw.template						std
-application/vnd.sun.xml.impress							sxi
-application/vnd.sun.xml.impress.template					sti
-application/vnd.sun.xml.math							sxm
-application/vnd.sun.xml.writer							sxw
-application/vnd.sun.xml.writer.global						sxg
-application/vnd.sun.xml.writer.template						stw
-application/vnd.svd
-application/vnd.swiftview-ics
-application/vnd.symbian.install							sis
-application/vnd.tcpdump.pcap							cap pcap
-application/vnd.triscape.mxs
-application/vnd.trueapp
-application/vnd.truedoc
-application/vnd.tve-trigger
-application/vnd.ufdl
-application/vnd.uplanet.alert
-application/vnd.uplanet.alert-wbxml
-application/vnd.uplanet.bearer-choice
-application/vnd.uplanet.bearer-choice-wbxml
-application/vnd.uplanet.cacheop
-application/vnd.uplanet.cacheop-wbxml
-application/vnd.uplanet.channel
-application/vnd.uplanet.channel-wbxml
-application/vnd.uplanet.list
-application/vnd.uplanet.list-wbxml
-application/vnd.uplanet.listcmd
-application/vnd.uplanet.listcmd-wbxml
-application/vnd.uplanet.signal
-application/vnd.vcx
-application/vnd.vectorworks
-application/vnd.vidsoft.vidconference
-application/vnd.visio								vsd
-application/vnd.vividence.scriptfile
-application/vnd.wap.sic
-application/vnd.wap.slc
-application/vnd.wap.wbxml							wbxml
-application/vnd.wap.wmlc							wmlc
-application/vnd.wap.wmlscriptc							wmlsc
-application/vnd.webturbo
-application/vnd.wordperfect							wpd
-application/vnd.wordperfect5.1							wp5
-application/vnd.wrq-hp3000-labelled
-application/vnd.wt.stf
-application/vnd.xara
-application/vnd.xfdl
-application/vnd.yellowriver-custom-menu
-application/x-123				wk
-application/x-7z-compressed			7z
-application/x-abiword				abw
-application/x-apple-diskimage			dmg
-application/x-bcpio				bcpio
-application/x-bittorrent			torrent
-application/x-cab				cab
-application/x-cbr				cbr
-application/x-cbz				cbz
-application/x-cdf				cdf cda
-application/x-cdlink				vcd
-application/x-chess-pgn				pgn
-application/x-comsol				mph
-application/x-core
-application/x-cpio				cpio
-application/x-csh				csh
-application/x-debian-package			deb udeb
-application/x-director				dcr dir dxr
-application/x-dms				dms
-application/x-doom				wad
-application/x-dvi				dvi
-application/x-executable
-application/x-font				pfa pfb gsf pcf pcf.Z
-application/x-font-woff				woff
-application/x-freemind				mm
-application/x-futuresplash			spl
-application/x-ganttproject			gan
-application/x-gnumeric				gnumeric
-application/x-go-sgf				sgf
-application/x-graphing-calculator		gcf
-application/x-gtar				gtar
-application/x-gtar-compressed			tgz taz
-application/x-hdf				hdf
-#application/x-httpd-eruby			rhtml
-#application/x-httpd-php			phtml pht php
-#application/x-httpd-php-source			phps
-#application/x-httpd-php3			php3
-#application/x-httpd-php3-preprocessed		php3p
-#application/x-httpd-php4			php4
-#application/x-httpd-php5			php5
-application/x-hwp				hwp
-application/x-ica				ica
-application/x-info				info
-application/x-internet-signup			ins isp
-application/x-iphone				iii
-application/x-iso9660-image			iso
-application/x-jam				jam
-application/x-java-applet
-application/x-java-bean
-application/x-java-jnlp-file			jnlp
-application/x-jmol				jmz
-application/x-kchart				chrt
-application/x-kdelnk
-application/x-killustrator			kil
-application/x-koan				skp skd skt skm
-application/x-kpresenter			kpr kpt
-application/x-kspread				ksp
-application/x-kword				kwd kwt
-application/x-latex				latex
-application/x-lha				lha
-application/x-lyx				lyx
-application/x-lzh				lzh
-application/x-lzx				lzx
-application/x-maker				frm maker frame fm fb book fbdoc
-application/x-md5				md5
-application/x-mif				mif
-application/x-mpegURL				m3u8
-application/x-ms-wmd				wmd
-application/x-ms-wmz				wmz
-application/x-msdos-program			com exe bat dll
-application/x-msi				msi
-application/x-netcdf				nc
-application/x-ns-proxy-autoconfig		pac dat
-application/x-nwc				nwc
-application/x-object				o
-application/x-oz-application			oza
-application/x-pkcs7-certreqresp			p7r
-application/x-pkcs7-crl				crl
-application/x-python-code			pyc pyo
-application/x-qgis				qgs shp shx
-application/x-quicktimeplayer			qtl
-application/x-rdp				rdp
-application/x-redhat-package-manager		rpm
-application/x-rss+xml				rss
-application/x-ruby				rb
-application/x-rx
-application/x-scilab				sci sce
-application/x-scilab-xcos			xcos
-application/x-sh				sh
-application/x-sha1				sha1
-application/x-shar				shar
-application/x-shellscript
-application/x-shockwave-flash			swf swfl
-application/x-silverlight			scr
-application/x-sql				sql
-application/x-stuffit				sit sitx
-application/x-sv4cpio				sv4cpio
-application/x-sv4crc				sv4crc
-application/x-tar				tar
-application/x-tcl				tcl
-application/x-tex-gf				gf
-application/x-tex-pk				pk
-application/x-texinfo				texinfo texi
-application/x-trash				~ % bak old sik
-application/x-troff				t tr roff
-application/x-troff-man				man
-application/x-troff-me				me
-application/x-troff-ms				ms
-application/x-ustar				ustar
-application/x-videolan
-application/x-wais-source			src
-application/x-wingz				wz
-application/x-x509-ca-cert			crt
-application/x-xcf				xcf
-application/x-xfig				fig
-application/x-xpinstall				xpi
-
-audio/32kadpcm
-audio/3gpp
-audio/amr					amr
-audio/amr-wb					awb
-audio/amr					amr
-audio/amr-wb					awb
-audio/annodex					axa
-audio/basic					au snd
-audio/csound					csd orc sco
-audio/flac					flac
-audio/g.722.1
-audio/l16
-audio/midi					mid midi kar
-audio/mp4a-latm
-audio/mpa-robust
-audio/mpeg					mpga mpega mp2 mp3 m4a
-audio/mpegurl					m3u
-audio/ogg					oga ogg spx
-audio/parityfec
-audio/prs.sid					sid
-audio/telephone-event
-audio/tone
-audio/vnd.cisco.nse
-audio/vnd.cns.anp1
-audio/vnd.cns.inf1
-audio/vnd.digital-winds
-audio/vnd.everad.plj
-audio/vnd.lucent.voice
-audio/vnd.nortel.vbk
-audio/vnd.nuera.ecelp4800
-audio/vnd.nuera.ecelp7470
-audio/vnd.nuera.ecelp9600
-audio/vnd.octel.sbc
-audio/vnd.qcelp
-audio/vnd.rhetorex.32kadpcm
-audio/vnd.vmx.cvsd
-audio/x-aiff					aif aiff aifc
-audio/x-gsm					gsm
-audio/x-mpegurl					m3u
-audio/x-ms-wma					wma
-audio/x-ms-wax					wax
-audio/x-pn-realaudio-plugin
-audio/x-pn-realaudio				ra rm ram
-audio/x-realaudio				ra
-audio/x-scpls					pls
-audio/x-sd2					sd2
-audio/x-wav					wav
-
-chemical/x-alchemy				alc
-chemical/x-cache				cac cache
-chemical/x-cache-csf				csf
-chemical/x-cactvs-binary			cbin cascii ctab
-chemical/x-cdx					cdx
-chemical/x-cerius				cer
-chemical/x-chem3d				c3d
-chemical/x-chemdraw				chm
-chemical/x-cif					cif
-chemical/x-cmdf					cmdf
-chemical/x-cml					cml
-chemical/x-compass				cpa
-chemical/x-crossfire				bsd
-chemical/x-csml					csml csm
-chemical/x-ctx					ctx
-chemical/x-cxf					cxf cef
-#chemical/x-daylight-smiles			smi
-chemical/x-embl-dl-nucleotide			emb embl
-chemical/x-galactic-spc				spc
-chemical/x-gamess-input				inp gam gamin
-chemical/x-gaussian-checkpoint			fch fchk
-chemical/x-gaussian-cube			cub
-chemical/x-gaussian-input			gau gjc gjf
-chemical/x-gaussian-log				gal
-chemical/x-gcg8-sequence			gcg
-chemical/x-genbank				gen
-chemical/x-hin					hin
-chemical/x-isostar				istr ist
-chemical/x-jcamp-dx				jdx dx
-chemical/x-kinemage				kin
-chemical/x-macmolecule				mcm
-chemical/x-macromodel-input			mmd mmod
-chemical/x-mdl-molfile				mol
-chemical/x-mdl-rdfile				rd
-chemical/x-mdl-rxnfile				rxn
-chemical/x-mdl-sdfile				sd sdf
-chemical/x-mdl-tgf				tgf
-#chemical/x-mif					mif
-chemical/x-mmcif				mcif
-chemical/x-mol2					mol2
-chemical/x-molconn-Z				b
-chemical/x-mopac-graph				gpt
-chemical/x-mopac-input				mop mopcrt mpc zmt
-chemical/x-mopac-out				moo
-chemical/x-mopac-vib				mvb
-chemical/x-ncbi-asn1				asn
-chemical/x-ncbi-asn1-ascii			prt ent
-chemical/x-ncbi-asn1-binary			val aso
-chemical/x-ncbi-asn1-spec			asn
-chemical/x-pdb					pdb ent
-chemical/x-rosdal				ros
-chemical/x-swissprot				sw
-chemical/x-vamas-iso14976			vms
-chemical/x-vmd					vmd
-chemical/x-xtel					xtel
-chemical/x-xyz					xyz
-
-image/cgm
-image/g3fax
-image/gif					gif
-image/ief					ief
-image/jpeg					jpeg jpg jpe
-image/naplps
-image/pcx					pcx
-image/png					png
-image/prs.btif
-image/prs.pti
-image/svg+xml					svg svgz
-image/tiff					tiff tif
-image/vnd.cns.inf2
-image/vnd.djvu					djvu djv
-image/vnd.dwg
-image/vnd.dxf
-image/vnd.fastbidsheet
-image/vnd.fpx
-image/vnd.fst
-image/vnd.fujixerox.edmics-mmr
-image/vnd.fujixerox.edmics-rlc
-image/vnd.microsoft.icon			ico
-image/vnd.mix
-image/vnd.net-fpx
-image/vnd.svf
-image/vnd.wap.wbmp				wbmp
-image/vnd.xiff
-image/x-canon-cr2				cr2
-image/x-canon-crw				crw
-image/x-cmu-raster				ras
-image/x-coreldraw				cdr
-image/x-coreldrawpattern			pat
-image/x-coreldrawtemplate			cdt
-image/x-corelphotopaint				cpt
-image/x-epson-erf				erf
-image/x-icon
-image/x-jg					art
-image/x-jng					jng
-image/x-ms-bmp					bmp
-image/x-nikon-nef				nef
-image/x-olympus-orf				orf
-image/x-photoshop				psd
-image/x-portable-anymap				pnm
-image/x-portable-bitmap				pbm
-image/x-portable-graymap			pgm
-image/x-portable-pixmap				ppm
-image/x-rgb					rgb
-image/x-xbitmap					xbm
-image/x-xpixmap					xpm
-image/x-xwindowdump				xwd
-
-inode/chardevice
-inode/blockdevice
-inode/directory-locked
-inode/directory
-inode/fifo
-inode/socket
-
-message/delivery-status
-message/disposition-notification
-message/external-body
-message/http
-message/s-http
-message/news
-message/partial
-message/rfc822					eml
-
-model/iges					igs iges
-model/mesh					msh mesh silo
-model/vnd.dwf
-model/vnd.flatland.3dml
-model/vnd.gdl
-model/vnd.gs-gdl
-model/vnd.gtw
-model/vnd.mts
-model/vnd.vtu
-model/vrml					wrl vrml
-model/x3d+vrml					x3dv
-model/x3d+xml					x3d
-model/x3d+binary				x3db
-
-multipart/alternative
-multipart/appledouble
-multipart/byteranges
-multipart/digest
-multipart/encrypted
-multipart/form-data
-multipart/header-set
-multipart/mixed
-multipart/parallel
-multipart/related
-multipart/report
-multipart/signed
-multipart/voice-message
-
-text/cache-manifest				appcache
-text/calendar					ics icz
-text/css					css
-text/csv					csv
-text/directory
-text/english
-text/enriched
-text/h323					323
-text/html					html htm shtml
-text/iuls					uls
-text/mathml					mml
-text/parityfec
-text/plain					asc txt text pot brf srt
-text/prs.lines.tag
-text/rfc822-headers
-text/richtext					rtx
-text/rtf
-text/scriptlet					sct wsc
-text/t140
-text/texmacs					tm
-text/tab-separated-values			tsv
-text/uri-list
-text/vnd.abc
-text/vnd.curl
-text/vnd.DMClientScript
-text/vnd.flatland.3dml
-text/vnd.fly
-text/vnd.fmi.flexstor
-text/vnd.in3d.3dml
-text/vnd.in3d.spot
-text/vnd.IPTC.NewsML
-text/vnd.IPTC.NITF
-text/vnd.latex-z
-text/vnd.motorola.reflex
-text/vnd.ms-mediapackage
-text/vnd.sun.j2me.app-descriptor		jad
-text/vnd.wap.si
-text/vnd.wap.sl
-text/vnd.wap.wml				wml
-text/vnd.wap.wmlscript				wmls
-text/x-bibtex					bib
-text/x-boo					boo
-text/x-c++hdr					h++ hpp hxx hh
-text/x-c++src					c++ cpp cxx cc
-text/x-chdr					h
-text/x-component				htc
-text/x-crontab
-text/x-csh					csh
-text/x-csrc					c
-text/x-dsrc					d
-text/x-diff					diff patch
-text/x-haskell					hs
-text/x-java					java
-text/x-lilypond					ly
-text/x-literate-haskell				lhs
-text/x-makefile
-text/x-moc					moc
-text/x-pascal					p pas
-text/x-pcs-gcd					gcd
-text/x-perl					pl pm
-text/x-python					py
-text/x-scala					scala
-text/x-server-parsed-html
-text/x-setext					etx
-text/x-sfv					sfv
-text/x-sh					sh
-text/x-tcl					tcl tk
-text/x-tex					tex ltx sty cls
-text/x-vcalendar				vcs
-text/x-vcard					vcf
-
-video/3gpp					3gp
-video/annodex					axv
-video/dl					dl
-video/dv					dif dv
-video/fli					fli
-video/gl					gl
-video/mpeg					mpeg mpg mpe
-video/MP2T					ts
-video/mp4					mp4
-video/quicktime					qt mov
-video/mp4v-es
-video/ogg					ogv
-video/parityfec
-video/pointer
-video/webm					webm
-video/vnd.fvt
-video/vnd.motorola.video
-video/vnd.motorola.videop
-video/vnd.mpegurl				mxu
-video/vnd.mts
-video/vnd.nokia.interleaved-multimedia
-video/vnd.vivo
-video/x-flv					flv
-video/x-la-asf					lsf lsx
-video/x-mng					mng
-video/x-ms-asf					asf asx
-video/x-ms-wm					wm
-video/x-ms-wmv					wmv
-video/x-ms-wmx					wmx
-video/x-ms-wvx					wvx
-video/x-msvideo					avi
-video/x-sgi-movie				movie
-video/x-matroska				mpv mkv
-
-x-conference/x-cooltalk				ice
-
-x-epoc/x-sisx-app				sisx
-x-world/x-vrml					vrm vrml wrl
diff --git a/src/test/java/info/textgrid/services/aggregator/tree/DefaultFilenamePolicyTest.java b/src/test/java/info/textgrid/services/aggregator/tree/DefaultFilenamePolicyTest.java
deleted file mode 100644
index c9e328ecd70b43d77da64e197cc9c45eb5372c15..0000000000000000000000000000000000000000
--- a/src/test/java/info/textgrid/services/aggregator/tree/DefaultFilenamePolicyTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import info.textgrid.namespaces.metadata.core._2010.GeneratedType;
-import info.textgrid.namespaces.metadata.core._2010.GeneratedType.TextgridUri;
-import info.textgrid.namespaces.metadata.core._2010.GenericType;
-import info.textgrid.namespaces.metadata.core._2010.ObjectType;
-import info.textgrid.namespaces.metadata.core._2010.ProvidedType;
-
-import java.net.URI;
-import java.util.regex.Pattern;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import com.google.common.base.Optional;
-
-public class DefaultFilenamePolicyTest {
-
-	private static final String AGGREGATION_XML = "text/tg.aggregation+xml";
-	private static final String XML = "text/xml";
-	private Aggregation super1;
-	private Aggregation sub;
-	private AggregationEntry xample1;
-	private DefaultFilenamePolicy policy;
-	private DefaultMetaFilenamePolicy metaPolicy;
-
-	@Before
-	public void setUp() throws Exception {
-		final ObjectType super1MD = createSimpleMetadata("Ãœber Aggregation", AGGREGATION_XML, "textgrid:super1");
-		final ObjectType subMD = createSimpleMetadata("Sub", AGGREGATION_XML, "textgrid:sub");
-		final ObjectType xample1MD = createSimpleMetadata("Test Title", XML, "textgrid:xample1");
-
-		super1 = new Aggregation(super1MD);
-		sub = new Aggregation(subMD, super1);
-		xample1 = new AggregationEntry(xample1MD, sub);
-
-		policy = new DefaultFilenamePolicy();
-		metaPolicy = new DefaultMetaFilenamePolicy(policy);
-
-	}
-
-	private ObjectType createSimpleMetadata(final String title, final String format, final String uri) {
-		final ObjectType metadata = new ObjectType();
-		final GenericType generic = new GenericType();
-		final GeneratedType generated = new GeneratedType();
-		final ProvidedType provided = new ProvidedType();
-		generic.setGenerated(generated);;
-		generic.setProvided(provided);
-		provided.getTitle().add(title);
-		provided.setFormat(format);
-		final TextgridUri textgridUri = new TextgridUri();
-		textgridUri.setValue(uri);
-		generated.setTextgridUri(textgridUri);
-		metadata.setGeneric(generic);
-
-		return metadata;
-	}
-
-	@Test
-	public void testTranslate() {
-		final Pattern pattern = Pattern.compile("[a-zA-Z0-9.!~_-]+");
-		final String[] filenames = {
-				"Märchen",
-				"MÄRCHEN",
-				"Lustige Märchen",
-				"3½ Luſtige Märchen",
-				"ἑλληνικὴ γλῶσσα",
-				"اللغة العربية",
-				"國語羅馬字",
-				"देवनागरी",
-		};
-		for (final String filename : filenames) {
-			final String safename = policy.translate(filename);
-			System.out.println(filename + " -> " + safename);
-			assertTrue(safename + " (from " + filename + ") is not safe", pattern.matcher(safename).matches());
-		}
-	}
-
-	@Test
-	public void testGetFilenameforMetadata() {
-		assertEquals("Test_Title.xample1.xml", policy.getFilename(xample1.getMetadata(), false));
-		assertEquals("Ueber_Aggregation.super1.aggregation", policy.getFilename(super1.getMetadata(), false));
-		assertEquals("Ueber_Aggregation.super1/", policy.getFilename(super1.getMetadata(), true));
-	}
-
-	@Test
-	public void testGetFilenameforEntry() {
-		assertEquals(URI.create("Ueber_Aggregation.super1/Sub.sub/Test_Title.xample1.xml"), policy.getFilename(xample1, false));
-	}
-
-	@Test
-	public void testGetBase() {
-		assertEquals(Optional.of(URI.create("Ueber_Aggregation.super1/Sub.sub/")), policy.getBase(xample1));
-	}
-
-}
diff --git a/src/test/java/info/textgrid/services/aggregator/tree/FileExtensionMapTest.java b/src/test/java/info/textgrid/services/aggregator/tree/FileExtensionMapTest.java
deleted file mode 100644
index dc7d245a442c1ea7f5d07b9e2368271510c98366..0000000000000000000000000000000000000000
--- a/src/test/java/info/textgrid/services/aggregator/tree/FileExtensionMapTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package info.textgrid.services.aggregator.tree;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.google.common.collect.ImmutableCollection;
-import com.google.common.collect.ImmutableList;
-
-public class FileExtensionMapTest {
-
-	private static final String APPLICATION_XHTML_XML = "application/xhtml+xml";
-	private FileExtensionMap ext;
-
-	@Before
-	public void setUp() throws Exception {
-		ext = FileExtensionMap.getInstance();
-	}
-
-	@Test
-	public void testGetExtensions() {
-		final ImmutableCollection<String> xhtml = ext
-				.getExtensions(APPLICATION_XHTML_XML);
-		Assert.assertFalse("No extensions for xhtml?", xhtml.isEmpty());
-		Assert.assertEquals("Wrong extensions for XHTML",
-				ImmutableList.of("xhtml", "xht"), xhtml);
-	}
-	
-	@Test
-	public void testTextGridTypes() {
-		Assert.assertEquals("aggregation", ext.getFirstExtension("text/tg.aggregation+xml").orNull());
-	}
-
-	@Test
-	public void testGetFirstExtension() {
-		Assert.assertTrue("No first extension for XHTML", ext
-				.getFirstExtension(APPLICATION_XHTML_XML).isPresent());
-		Assert.assertEquals("xhtml",
-				ext.getFirstExtension(APPLICATION_XHTML_XML).get());
-	}
-
-	@Test
-	public void testAddExtension() {
-		Assert.assertEquals("test.xhtml",
-				ext.addExtension("test", APPLICATION_XHTML_XML));
-	}
-
-}