Added classes DocumentWith* and AbstractWithCompound