 					in: 'formData'
 				}
 				{
+					name: 'identifier'
+					type: 'string'
+					in: 'formData'
+				}
+				{
+					name: 'subjects'
+					type: 'array'
+					items: { type: 'string' }
+					in: 'formData'
+				}
+				{
+					name: 'authors'
+					type: 'array'
+					items: { type: 'string' }
+					in: 'formData'
+				}
+				{
+					name: 'language'
+					type: 'string'
+					in: 'formData'
+					enum: [
+						'en'
+						'de'
+					]
+				}
+				{
+					name: 'name'
+					type: 'string'
+					in: 'formData'
+				}
+				{
 					name: 'tags'
-					type: 'string'
+					type: 'array'
+					items: { type: 'string' }
 					in: 'formData'
 				}
 				{

							if res2.status isnt 201
								ret = new Error(res.text)
								return next ret
							fileModel.save (err, saved) ->
								if err
									ret = new Error("Error saving file to database")
									ret.cause = err
									ret.status = 400
									return next ret
								res.status 201
								res.header 'Location', fileModel.uri()
								res.send '@link': fileModel.uri()

	done()

				ret = new Error("Didn't pass the 'file' upload")
				ret.cause = [fields, files]
				return next ret
			entityModel = new app.schemo.models.Entity()
			fileModel = new app.schemo.models.InfolisFile()
			Fs.readFile fileField.path, (err, fileData) ->
				Async.each ['md5', 'sha1'], (algo, done) ->
