diff --git a/app.py b/app.py
index 8f51c9f2dfbd86b5aa97ed20851f1cd07ea38404..3fe031c0d035e77dc0414b3c27c6de09e931a1a3 100644
--- a/app.py
+++ b/app.py
@@ -42,10 +42,13 @@ software_features_table = db.Table('software_features', db.Model.metadata,
                                    db.Column('software_id', db.Integer, db.ForeignKey('software.id')),
                                    db.Column('feature_id', db.Integer, db.ForeignKey('feature.id')))
 # Create N2one table
-software_licence_table = db.Table('software_license', db.Model.metadata,
+software_languages_table = db.Table('software_languages', db.Model.metadata,
                                   db.Column('software_id', db.Integer, db.ForeignKey('software.id')),
-                                  db.Column('license_id', db.Integer, db.ForeignKey('license.id')))
-
+                                  db.Column('language_id', db.Integer, db.ForeignKey('language.id')))
+# Create N2one table
+software_programminglanguages_table = db.Table('software_programminglanguages', db.Model.metadata,
+                                  db.Column('software_id', db.Integer, db.ForeignKey('software.id')),
+                                  db.Column('programming_id', db.Integer, db.ForeignKey('programminglanguage.id')))
 
 class License(db.Model):
     id = db.Column(db.Integer, primary_key=True)
@@ -66,6 +69,23 @@ class Feature(db.Model):
     def __str__(self):
         return "{}".format(self.name)
 
+
+class Language(db.Model):
+    id = db.Column(db.Integer, primary_key=True)
+    name = db.Column(db.Unicode(64))
+
+    def __str__(self):
+        return "{}".format(self.name)
+
+
+class Programminglanguage(db.Model):
+    id = db.Column(db.Integer, primary_key=True)
+    name = db.Column(db.Unicode(64))
+
+    def __str__(self):
+        return "{}".format(self.name)
+
+
 class Matterofexpense(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.Unicode(64))
@@ -77,8 +97,10 @@ class Matterofexpense(db.Model):
 class Software(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(120))
-    text = db.Column(db.Text, nullable=False)
-    date = db.Column(db.Date)
+    short_description = db.Column(db.Text, nullable=False)
+    developer = db.Column(db.String(120))
+    lastchanged = db.Column(db.Date)
+
 
     license_id = db.Column(db.Integer(), db.ForeignKey(License.id))
     license = db.relationship(License, backref='softwares')
@@ -87,11 +109,26 @@ class Software(db.Model):
     matterofexpense = db.relationship(Matterofexpense, backref='softwares')
 
     features = db.relationship('Feature', secondary=software_features_table)
+    languages = db.relationship('Language', secondary=software_languages_table)
+    programminglanguages = db.relationship('Programminglanguage', secondary=software_programminglanguages_table)
 
     def __str__(self):
         return "{}".format(self.name)
 
 
+class Link(db.Model):
+    id = db.Column(db.Integer, primary_key=True)
+    type = db.Column(db.Enum('repository', 'website', 'developer', 'tutorial', 'faq', 'other', name='link_types'))
+
+    url = db.Column(db.String(120))
+
+    software_id = db.Column(db.Integer(), db.ForeignKey(Software.id))
+    software = db.relationship(Software, backref='Links')
+
+    def __str__(self):
+        return "{}:{}".format(self.type,self.url)
+
+
 # Flask views
 @app.route('/')
 def index():
@@ -118,7 +155,9 @@ inline_form_options = {
     'form_extra_fields': None,
 }'''
 
-class AdvancedExportView(sqla.ModelView):
+class AdvancedSoftwareView(sqla.ModelView):
+    inline_models = (Link,)
+
     @action('advancedexport', 'AdvancedExport')
     def action_advancedexport(self, ids):
         try:
@@ -140,7 +179,6 @@ class AdvancedExportView(sqla.ModelView):
                 as_attachment=True,
                 attachment_filename='data.zip'
             )
-
             flash("Done")
         except Exception as ex:
             if not self.handle_view_exception(ex):
@@ -265,16 +303,15 @@ class ScreenView(sqla.ModelView):
 
 
 # Create admin
-admin = admin.Admin(app, name='Example: SQLAlchemy', template_mode='bootstrap3')
+admin = admin.Admin(app, name='Softwaresammlung: Digitale Methoden', template_mode='bootstrap3')
 
 # Add views
-admin.add_view(AdvancedExportView(Software, db.session))
+admin.add_view(AdvancedSoftwareView(Software, db.session))
 admin.add_view(sqla.ModelView(Feature, db.session))
 admin.add_view(sqla.ModelView(License, db.session, category="Other"))
+admin.add_view(sqla.ModelView(Link, db.session, category="Other"))
 admin.add_sub_category(name="Links", parent_name="Other")
 admin.add_link(MenuLink(name='Back Home', url='/', category='Links'))
-admin.add_link(MenuLink(name='Google', url='http://www.google.com/', category='Links'))
-admin.add_link(MenuLink(name='Mozilla', url='http://mozilla.org/', category='Links'))
 
 
 def build_sample_db():
diff --git a/sample_db.sqlite b/sample_db.sqlite
index a3fd5a17f720f47ed3eb8110a0e9f78cd29f2d5a..9f5332adfdf19c39b683be53d3b458be6f74306e 100644
Binary files a/sample_db.sqlite and b/sample_db.sqlite differ