diff --git a/packages/data-table-view/src/data-table-view.js b/packages/data-table-view/src/data-table-view.js
index 498944f3832fc015b1281130652b67970b69fd3f..3a135f5bfa1a1330cff48ac32d43e0c7884c56ac 100644
--- a/packages/data-table-view/src/data-table-view.js
+++ b/packages/data-table-view/src/data-table-view.js
@@ -2,10 +2,13 @@ import $ from 'jquery';
 import dt from 'datatables.net';
 import resp from 'datatables.net-responsive';
 import resp2 from 'datatables.net-responsive-dt';
-//import {getAssetURL,} from './utils.js';
 import {i18n} from './i18n';
 import {html, LitElement} from 'lit-element';
+import de from '../assets/datatables/i18n/German';
+import en from '../assets/datatables/i18n/English';
+
 import * as commonUtils from 'vpu-common/utils';
+import {getAssetURL} from "./utils";
 
 dt(window, $);
 resp(window, $);
@@ -20,7 +23,9 @@ class DataTableView extends LitElement {
         this.responsive = null;
         this.paging = false;
         this.searching = false;
-        this.columnDef = [];
+        this.columns = [{title: 'uninitialized'}];
+        this.columnDefs = [];
+        this.data = [];
     }
 
     static get properties() {
@@ -29,29 +34,41 @@ class DataTableView extends LitElement {
             table: { type: Object, attribute: false },
             paging: { type: Boolean },
             searching: { type: Boolean },
-            columnDef: { type: Array, attribute: false },
+            columns: { type: Array, attribute: false },
+            columnDefs: { type: Array, attribute: false },
+            data: { type: Array, attribute: false },
         };
     }
 
-    set_columnDef(def) {
-        this.columnDef = def;
+    set_columns(cols) {
+        this.columns = cols;
+        return this;
+    }
+    set_columnDefs(defs) {
+        this.columnDefs = defs;
+        return this;
+    }
+    add_row(row) {
+        this.data.push(row);
+        this.table.row.add(row);
+        return this;
+    }
+    draw() {
+        this.table.draw();
+        return this;
     }
 
-    set_datatable() {
-        const lang_de_url = 'local/vpu-data-table-view/i18n/German.json';
-        const lang_en_url = 'local/vpu-data-table-view/i18n/English.json';
+    set_datatable(data) {
+        const lang_obj = this.lang === 'de' ? de : en;
 
-        if (this.table) {
-            this.table.destroy();
-        }
-        this.table = $(this.querySelector('table')).DataTable({
+        this.table = $(this.shadowRoot.querySelector('table')).DataTable({
+            destroy: true,
             autoWidth: false,
-            language: {
-                url: this.lang === 'de' ? lang_de_url : lang_en_url,
-            },
+            language: lang_obj,
             paging: this.paging,
             searching: this.searching,
-            columnDef: this.columnDef,
+            columns: this.columns,
+            columnDefs: this.columnDefs,
         });
 
         try {
@@ -61,6 +78,10 @@ class DataTableView extends LitElement {
         } catch (e) {
             // XXX: it throws, but it still works
         }
+        if (data) {
+            this.data = data;
+        }
+        this.table.rows.add(this.data).draw();
     }
 
     update(changedProperties) {
@@ -75,10 +96,14 @@ class DataTableView extends LitElement {
     }
 
     render() {
+        let dt_css = getAssetURL('local/vpu-data-table-view/css/jquery.dataTables.min.css');
+        let rs_css = getAssetURL('local/vpu-data-table-view/css/responsive.dataTables.css');
         return html`
+            <link rel="stylesheet" href="${dt_css}">
+            <link rel="stylesheet" href="${rs_css}">
             <style>
             </style>
-            <slot name="table"></slot>
+            <div><table></table></div>
         `;
     }
 }
diff --git a/packages/data-table-view/src/demo.js b/packages/data-table-view/src/demo.js
index 2c7f94f314d5a61c57d3ec39c869fa874e89b590..0ea8fa326fcefa0d4f34dafe03579b24686d2588 100644
--- a/packages/data-table-view/src/demo.js
+++ b/packages/data-table-view/src/demo.js
@@ -1,6 +1,6 @@
 import 'vpu-auth';
 import './data-table-view.js';
-import {setting, getAssetURL,} from './utils.js';
+import {setting,} from './utils.js';
 import {i18n} from './i18n';
 import {html, LitElement} from 'lit-element';
 import * as commonUtils from 'vpu-common/utils';
@@ -17,6 +17,49 @@ class DataTableViewDemo extends LitElement {
         };
     }
 
+    connectedCallback() {
+        super.connectedCallback();
+        const that = this;
+
+        this.updateComplete.then(()=> {
+            /*
+                    First Table: with data
+             */
+            const vdtv1 = that.shadowRoot.querySelector('#vdtv1');
+            if (vdtv1 !== null) {
+                const vdtv1_columnDefs = [
+                    { targets: [3], visible: false },
+                    { targets: [2], orderData: [3] },
+                    { targets: [3, 4], searchable: false },
+                    { targets: [4], sortable: false }
+                ];
+                const tbl = [];
+                for (let i = 0; i<25; ++i) {
+                    tbl.push(this.vdtv_create_row());
+                }
+                vdtv1.set_columns([{title:'Bezeichnung'}, {title:'Nummer'}, {title:'Datum'}, null, null])
+                    .set_columnDefs(vdtv1_columnDefs)
+                    .set_datatable(tbl);
+            }
+
+            /*
+                    Second Table: no data definition only
+             */
+            const vdtv2 = that.shadowRoot.querySelector('#vdtv2');
+            if (vdtv2 !== null) {
+                const vdtv2_columnDefs = [
+                    { targets: [3], visible: false },
+                    { targets: [2], orderData: [3] },
+                    { targets: [3, 4], searchable: false },
+                    { targets: [4], sortable: false }
+                ];
+                vdtv2.set_columns([{title:'Bezeichnung'}, {title:'Nummer'}, {title:'Datum'}, null, null])
+                    .set_columnDefs(vdtv2_columnDefs)
+                    .set_datatable([]);
+            }
+        });
+    }
+
     update(changedProperties) {
         changedProperties.forEach((oldValue, propName) => {
             if (propName === "lang") {
@@ -27,14 +70,33 @@ class DataTableViewDemo extends LitElement {
         super.update(changedProperties);
     }
 
+    vdtv_create_row() {
+        const str = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5);
+        const day = Math.floor(Math.random()*(31-1) + 1);
+        const month = Math.floor(Math.random()*(12-1) + 1);
+        const year = Math.floor(Math.random()*(2019-2016) + 2016);
+        return [
+            str,
+            Math.floor(1000 * Math.random()),
+            '' + day + '.' + month + '.' + year,
+            '' + year + '-' + month + '-' + day,
+            '<button onclick="alert(\'' + str + ' clicked\');">OK</button>'
+        ];
+    }
+
+    vdtv2_add_rows() {
+        console.log('vdtv2_add_rows() clicked');
+        const vdtv2 = this.shadowRoot.querySelector('#vdtv2');
+        if (vdtv2 !== null) {
+            const row = this.vdtv_create_row();
+            vdtv2.add_row(row).draw();
+        }
+    }
+
     render() {
         // datatable.net tyles must be applied here :-/
-        let dt_css = getAssetURL('datatables/css/jquery.dataTables.min.css');
-        let rs_css = getAssetURL('datatables/css/responsive.dataTables.css');
         return html`
             <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css">
-            <link rel="stylesheet" href="${dt_css}">
-            <link rel="stylesheet" href="${rs_css}">
             <style>
                 .box {
                     margin: 10px;
@@ -51,175 +113,36 @@ class DataTableViewDemo extends LitElement {
                     <vpu-auth lang="${this.lang}" client-id="${setting('keyCloakClientId')}" load-person force-login></vpu-auth>
                 </div>
                 <div class="content">
-                    <h4>DataTable: paging and searching</h4>
+                    <h4>DataTable: with data, paging and searching</h4>
                      <div class="box">
-                        <vpu-data-table-view lang="${this.lang}" paging searching>
-                            <div slot="table"><!-- slot encapsulates table -->
-                                <table class="display">
-                                    <thead>
-                                        <tr>
-                                            <th>A</th>
-                                            <th>B</th>
-                                            <th>C</th>
-                                        </tr>
-                                    </thead>
-                                    <tbody>
-                                        <tr>
-                                            <td>abc</td>
-                                            <td>123</td>
-                                            <td>a-2-4-g</td>
-                                        </tr>
-                                        <tr>
-                                            <td>def</td>
-                                            <td>456</td>
-                                            <td>b-3-5-h</td>
-                                        </tr>
-                                        <tr>
-                                            <td>ghi</td>
-                                            <td>789</td>
-                                            <td>c-4-6-i</td>
-                                        </tr>
-                                        <tr>
-                                            <td>jkl</td>
-                                            <td>012</td>
-                                            <td>x-8-0-a</td>
-                                        </tr>
-                                        <tr>
-                                            <td>abc</td>
-                                            <td>123</td>
-                                            <td>a-2-4-g</td>
-                                        </tr>
-                                        <tr>
-                                            <td>def</td>
-                                            <td>456</td>
-                                            <td>b-3-5-h</td>
-                                        </tr>
-                                        <tr>
-                                            <td>ghi</td>
-                                            <td>789</td>
-                                            <td>c-4-6-i</td>
-                                        </tr>
-                                        <tr>
-                                            <td>jkl</td>
-                                            <td>012</td>
-                                            <td>x-8-0-a</td>
-                                        </tr>
-                                        <tr>
-                                            <td>abc</td>
-                                            <td>123</td>
-                                            <td>a-2-4-g</td>
-                                        </tr>
-                                        <tr>
-                                            <td>def</td>
-                                            <td>456</td>
-                                            <td>b-3-5-h</td>
-                                        </tr>
-                                        <tr>
-                                            <td>ghi</td>
-                                            <td>789</td>
-                                            <td>c-4-6-i</td>
-                                        </tr>
-                                        <tr>
-                                            <td>jkl</td>
-                                            <td>012</td>
-                                            <td>x-8-0-a</td>
-                                        </tr>
-                                    </tbody>
-                                </table>
-                            </div>
-                        </vpu-data-table-view>
+                        <vpu-data-table-view lang="${this.lang}" paging searching id="vdtv1"></vpu-data-table-view>
                     </div>
-                    <h4>DataTable: no paging, no searching</h4>
+                    <h4>DataTable: no data, no paging, no searching</h4>
                     <div class="box">
-                        <vpu-data-table-view lang="${this.lang}">
-                            <div slot="table"><!-- slot encapsulates table -->
-                                <table class="display">
-                                    <thead>
-                                        <tr>
-                                            <th>A</th>
-                                            <th>B</th>
-                                            <th>C</th>
-                                        </tr>
-                                    </thead>
-                                    <tbody>
-                                        <tr>
-                                            <td>abc</td>
-                                            <td>123</td>
-                                            <td>a-2-4-g</td>
-                                        </tr>
-                                        <tr>
-                                            <td>ghi</td>
-                                            <td>789</td>
-                                            <td>c-4-6-i</td>
-                                        </tr>
-                                        <tr>
-                                            <td>jkl</td>
-                                            <td>012</td>
-                                            <td>x-8-0-a</td>
-                                        </tr>
-                                    </tbody>
-                                </table>
-                            </div>
-                        </vpu-data-table-view>
+                    <button @click="${this.vdtv2_add_rows}">noch etwas...</button>
+                        <vpu-data-table-view lang="${this.lang}" id="vdtv2"></vpu-data-table-view>
                     </div>
                 </div>
                 <div class="content">
                     <h4>Common Table</h4>
                       <div class="box">
                         <!-- <vpu-data-table-view lang="${this.lang}" paging searching> -->
-                            <div slot="table">
-                                <table class="display">
-                                    <thead>
-                                        <tr>
-                                            <th>A</th>
-                                            <th>B</th>
-                                            <th>C</th>
-                                        </tr>
-                                    </thead>
-                                    <tbody>
-                                        <tr>
-                                            <td>abc</td>
-                                            <td>123</td>
-                                            <td>a-2-4-g</td>
-                                        </tr>
-                                        <tr>
-                                            <td>def</td>
-                                            <td>456</td>
-                                            <td>b-3-5-h</td>
-                                        </tr>
-                                        <tr>
-                                            <td>ghi</td>
-                                            <td>789</td>
-                                            <td>c-4-6-i</td>
-                                        </tr>
-                                        <tr>
-                                            <td>jkl</td>
-                                            <td>012</td>
-                                            <td>x-8-0-a</td>
-                                        </tr>
-                                        <tr>
-                                            <td>abc</td>
-                                            <td>123</td>
-                                            <td>a-2-4-g</td>
-                                        </tr>
-                                        <tr>
-                                            <td>def</td>
-                                            <td>456</td>
-                                            <td>b-3-5-h</td>
-                                        </tr>
-                                        <tr>
-                                            <td>ghi</td>
-                                            <td>789</td>
-                                            <td>c-4-6-i</td>
-                                        </tr>
-                                        <tr>
-                                            <td>jkl</td>
-                                            <td>012</td>
-                                            <td>x-8-0-a</td>
-                                        </tr>
-                                    </tbody>
-                                </table>
-                            </div>
+                            <table class="display">
+                                <thead>
+                                    <tr>
+                                        <th>A</th>
+                                        <th>B</th>
+                                        <th>C</th>
+                                    </tr>
+                                </thead>
+                                <tbody>
+                                    <tr>
+                                        <td>abc</td>
+                                        <td>123</td>
+                                        <td>a-2-4-g</td>
+                                    </tr>
+                                </tbody>
+                            </table>
                         <!-- </vpu-data-table-view> -->
                     </div>
                 </div>