diff --git a/cps/db.py b/cps/db.py
index bfceabe9ed2552b625fd22719607c9f593e9ffd0..52c350da50f49a0a147173ba3e2e8629541d862b 100755
--- a/cps/db.py
+++ b/cps/db.py
@@ -49,17 +49,24 @@ books_languages_link = Table('books_languages_link', Base.metadata,
     Column('lang_code', Integer, ForeignKey('languages.id'), primary_key=True)
     )
 
-#cc = conn.execute("SELECT id FROM custom_columns")
-#cc_ids = []
-#books_custom_column_links = {}
-#for row in cc:
-#    cc_link=Table('books_custom_column_' + str(row.id) + '_link', Base.metadata,
-#        Column('book', Integer, ForeignKey('books.id'), primary_key=True),
-#        Column('custom_column', Integer, ForeignKey('custom_column_' + str(row.id) + '.id'), primary_key=True)
-#        )
-#    books_custom_column_links[row.id] = cc_link
-#    cc_ids.append(row.id)
-
+cc = conn.execute("SELECT id FROM custom_columns")
+cc_ids = []
+
+books_custom_column_links = {}
+for row in cc:
+    books_custom_column_links[row.id] = Table('books_custom_column_' + str(row.id) + '_link', Base.metadata,
+        Column('book', Integer, ForeignKey('books.id'), primary_key=True),
+        Column('value', Integer, ForeignKey('custom_column_' + str(row.id) + '.id'), primary_key=True)
+        )
+    #books_custom_column_links[row.id]=
+    cc_ids.append(row.id)
+
+cc_classes = {}
+for id in cc_ids:
+    ccdict={'__tablename__':'custom_column_' + str(id),
+        'id':Column(Integer, primary_key=True),
+        'value':Column(String)}
+    cc_classes[id] = type('Custom_Column_' + str(id), (Base,), ccdict)
 
 class Comments(Base):
     __tablename__ = 'comments'
@@ -163,7 +170,7 @@ class Data(Base):
 class Books(Base):
     __tablename__ = 'books'
 
-    id = Column(Integer,primary_key=True)
+    id = Column(Integer, primary_key=True)
     title = Column(String)
     sort = Column(String)
     author_sort = Column(String)
@@ -181,17 +188,7 @@ class Books(Base):
     series = relationship('Series', secondary=books_series_link, backref='books')
     ratings = relationship('Ratings', secondary=books_ratings_link, backref='books')
     languages = relationship('Languages', secondary=books_languages_link, backref='books')
-    #custom_columns = {}
-    #for id in cc_ids:
-    #    print id
-    #    custom_columns[id] = relationship(cc_classes[id], secondary=books_custom_column_links[id], backref='books')
-    #custom_columns[1] = relationship(cc_classes[1], secondary=books_custom_column_links[1], backref='books')
-    #custom_columns[2] = relationship(cc_classes[2], secondary=books_custom_column_links[2], backref='books')
-    #custom_columns[3] = relationship(cc_classes[3], secondary=books_custom_column_links[3], backref='books')
     
-
-
-
     def __init__(self, title, sort, author_sort, timestamp, pubdate, series_index, last_modified, path, has_cover, authors, tags):
         self.title = title
         self.sort = sort
@@ -205,7 +202,9 @@ class Books(Base):
 
     def __repr__(self):
         return u"<Books('{0},{1}{2}{3}{4}{5}{6}{7}{8}')>".format(self.title, self.sort, self.author_sort, self.timestamp, self.pubdate, self.series_index, self.last_modified ,self.path, self.has_cover)
-        
+for id in cc_ids:
+    setattr(Books, 'custom_column_' + str(id), relationship(cc_classes[id], secondary=books_custom_column_links[id], backref='books'))
+
 class Custom_Columns(Base):
     __tablename__ = 'custom_columns'
     
@@ -217,30 +216,9 @@ class Custom_Columns(Base):
     editable = Column(Boolean)
     display = Column(String)
     is_multiple = Column(Boolean)
-    normalized = Column(Boolean)
-    
-#class Custom_Column(object):
-#    def __init__(self, value):
-#        self.value = value
-    
-#def get_cc_table(id):
-#    custom_column = Custom_Column
-#    table_name = 'custom_column_' + str(id)
-#    table_object = Table(table_name, Base.metadata,
-#        Column('id', Integer, primary_key=True, autoincrement=True),
-#        Column('value', String)
-#    )
-#    clear_mappers()
-#    mapper(custom_column, table_object, properties={'books' + str(id): relationship(Books, secondary=books_custom_column_links[id] , backref='custom_column_' + str(id))})
-#    return custom_column
-
-#cc_classes={}
-#for id in cc_ids:
-#    cc_classes[id] = get_cc_table(id)
-#print cc_classes
-    
+    normalized = Column(Boolean)    
 
-Base.metadata.create_all(engine)
+#Base.metadata.create_all(engine)
 Session = sessionmaker()
 Session.configure(bind=engine)
 session = Session()
diff --git a/cps/helper.py b/cps/helper.py
index 629c8109ee83cbb1e7fe680e341fd9cc2ac54a16..4bd9d952c7960040a62bb9cb4ead62ec64b25080 100755
--- a/cps/helper.py
+++ b/cps/helper.py
@@ -200,8 +200,8 @@ def update_dir_stucture(book_id):
         book.path = new_authordir + "/" + book.path.split("/")[1]
     db.session.commit()
     
-def get_custom_columns(id):
-    cc = db.session.query(db.Custom_Columns).all()
-    for c in cc:
-        print c.name
+#def get_custom_columns(id):
+#    cc = db.session.query(db.Custom_Columns).all()
+#    for c in cc:
+#        print c.name
     
diff --git a/cps/templates/detail.html b/cps/templates/detail.html
index bcaad48aa4ba2ae98a6a03da908025174632910b..5cf9d5e24120e230c29b30d38df659af280fd555 100644
--- a/cps/templates/detail.html
+++ b/cps/templates/detail.html
@@ -58,6 +58,23 @@
       </div>
       </p>
       {% endif %}
+      
+      {% if cc|length > 0 %}
+        <p>
+        <div class="custom_columns">
+        {% for c in cc %}
+          {% if entry['custom_column_' ~ c.id]|length > 0 %}
+            {{ c.name }}: 
+            {% for column in entry['custom_column_' ~ c.id] %}
+              {{ column.value }}
+            {% endfor %}
+            <br />
+          {% endif %}
+        {% endfor %}
+        </div>
+        </p>
+      {% endif %}  
+        
 
       {% if entry.comments|length > 0 %}
         <h3>Description:</h3>
diff --git a/cps/templates/edit_book.html b/cps/templates/edit_book.html
index b4ec366123028dc43f52fd91abf981a2cb145f5f..a3746e4e93619ba696a692a17fc95f5c6f3a7dbc 100644
--- a/cps/templates/edit_book.html
+++ b/cps/templates/edit_book.html
@@ -43,6 +43,25 @@
         <label for="cover_url">Cover URL (jpg)</label>
         <input type="text" class="form-control" name="cover_url" id="cover_url" value="">
       </div>
+      {% if cc|length > 0 %}
+        {% for c in cc %}
+          <div class="form-group">
+            <label for="{{ 'custom_column_' ~ c.id }}">{{ c.name }}</label>
+            <input type="text" class="form-control" name="{{ 'custom_column_' ~ c.id}} " id="{{ 'custom_column_' ~ c.id }}"
+            {% if book['custom_column_' ~ c.id]|length > 0 %}
+              {% for column in book['custom_column_' ~ c.id] %}
+                value="{{ column.value }} {% if not loop.last %}, {% endif %}
+              {% endfor %}
+              "
+            {% endif %}
+            >
+          <br />
+        {% endfor %}
+        </div>
+        </p>
+      {% endif %}  
+      
+      
     <div class="checkbox">
       <label>
         <input name="detail_view" type="checkbox" checked> view book after edit
diff --git a/cps/web.py b/cps/web.py
index 978b7f537bb31e6d8024737824f45b16a60db6aa..08c4636f0258772a86d8fcf9bccd38057c6ba850 100755
--- a/cps/web.py
+++ b/cps/web.py
@@ -316,12 +316,14 @@ def discover(page):
 @app.route("/book/<int:id>")
 def show_book(id):
     entries = db.session.query(db.Books).filter(db.Books.id == id).first()
-    helper.get_custom_columns(entries.id)
+    cc = db.session.query(db.Custom_Columns).all()
+    #print entries.custom_column_1
+    #helper.get_custom_columns(entries.id)
     book_in_shelfs = []
     shelfs = ub.session.query(ub.BookShelf).filter(ub.BookShelf.book_id == id).all()
     for entry in shelfs:
         book_in_shelfs.append(entry.shelf)
-    return render_template('detail.html', entry=entries,  title=entries.title, books_shelfs=book_in_shelfs)
+    return render_template('detail.html', entry=entries,  cc=cc, title=entries.title, books_shelfs=book_in_shelfs)
 
 @app.route("/category")
 def category_list():
@@ -695,6 +697,7 @@ def edit_user(user_id):
 def edit_book(book_id):
     ## create the function for sorting...
     db.session.connection().connection.connection.create_function("title_sort",1,db.title_sort)
+    cc = db.session.query(db.Custom_Columns).all()
     book = db.session.query(db.Books).filter(db.Books.id == book_id).first()
     author_names = []
     for author in book.authors:
@@ -832,9 +835,9 @@ def edit_book(book_id):
         if "detail_view" in to_save:
             return redirect(url_for('show_book', id=book.id))
         else:
-            return render_template('edit_book.html', book=book, authors=author_names)
+            return render_template('edit_book.html', book=book, authors=author_names, cc=cc)
     else:
-        return render_template('edit_book.html', book=book, authors=author_names)
+        return render_template('edit_book.html', book=book, authors=author_names, cc=cc)
 
 @app.route("/upload", methods = ["GET", "POST"])
 @login_required
@@ -877,7 +880,6 @@ def upload():
         if fileextension.upper() == ".PDF":
             if use_generic_pdf_cover:
                 basedir = os.path.dirname(__file__)
-                print basedir
                 copyfile(os.path.join(basedir, "static/generic_cover.jpg"), os.path.join(filepath, "cover.jpg"))
             else:
                 with Image(filename=saved_filename + "[0]", resolution=150) as img:
@@ -885,12 +887,15 @@ def upload():
                     img.save(filename=os.path.join(filepath, "cover.jpg"))
                     has_cover = 1
         is_author = db.session.query(db.Authors).filter(db.Authors.name == author).first()
+        print is_author
         if is_author:
+            print 'Unknown is known Author'
             db_author = is_author
         else:
             db_author = db.Authors(author, "", "")
             db.session.add(db_author)
-        db_book = db.Books(title, "", "", datetime.datetime.now(), datetime.datetime(101, 01,01), 1, datetime.datetime.now(), author_dir + "/" + title_dir, has_cover, db_author, [])
+        path = os.path.join(author_dir, title_dir)
+        db_book = db.Books(title, "", "", datetime.datetime.now(), datetime.datetime(101, 01,01), 1, datetime.datetime.now(), path, has_cover, db_author, [])
         db_book.authors.append(db_author)
         db_data = db.Data(db_book, fileextension.upper()[1:], file_size, data_name)
         db_book.data.append(db_data)