diff --git a/components/LayoutWrapper.vue b/components/LayoutWrapper.vue
index 872c0d516252107565cbc21237c3071770a04231..174b79316d414a60b08591bc01fde2d8a2f17428 100644
--- a/components/LayoutWrapper.vue
+++ b/components/LayoutWrapper.vue
@@ -38,7 +38,9 @@ function onScroll() {
         <v-row justify="center">
           <v-col cols="auto">
             <v-card flat color="transparent" :min-width="mobile ? undefined : 900" :max-width="fluid ? undefined : 1500">
-              <slot />
+              <v-card-text>
+                <slot />
+              </v-card-text>
               <EditGitlab v-if="edit" />
               <NavPrevNext v-if="edit" />
             </v-card>
diff --git a/components/Nav/Drawer.vue b/components/Nav/Drawer.vue
index 645e512f65f55c2c9248aa653baf8edd2d1353fb..a0bb7e91e9a4ffee01c4836d12e2a785e148f2c0 100644
--- a/components/Nav/Drawer.vue
+++ b/components/Nav/Drawer.vue
@@ -13,23 +13,23 @@ import { useDisplay, useTheme } from "vuetify";
 const { navigation, page } = useContent();
 // const drawer = ref(true);
 
-// const computedNavigation = computed(() => {
-//     return navigation.value
-//         .filter((item: { layout: string }) => {
-//             if (item?.layout === "db") {
-//                 console.log(item)
-//                 return false
-//             }
-//             return true
-//             // return item?.layout !== "db"
-//         })
+const computedNavigation = computed(() => {
+    return navigation.value
+        .filter((item: { layout: string }) => {
+            if (item?.layout === "db") {
+                console.log(item)
+                return false
+            }
+            return true
+            // return item?.layout !== "db"
+        })
 
-// });
+});
 </script>
 <template>
     <v-navigation-drawer :model-value="drawer" :border="1" color="background">
         <v-list nav density="compact" :lines="false">
-            <NavNavigation :navigation="navigation" />
+            <NavNavigation :navigation="computedNavigation" />
         </v-list>
     </v-navigation-drawer>
 </template>
\ No newline at end of file
diff --git a/components/ServerDbTable.vue b/components/ServerDbTable.vue
index b85e8eeb0ddfebd403676dc565ec56d25af1a480..c0ffaa005c5d64a4c2e3d8020d81bdd5f623ad20 100644
--- a/components/ServerDbTable.vue
+++ b/components/ServerDbTable.vue
@@ -2,9 +2,10 @@
 // import type { FacetDistribution } from "meilisearch";
 import { useSlots } from 'vue'
 import { useDisplay } from "vuetify";
-import { useFacetsStore } from '~~/stores/facets'
-
-
+import * as Plot from "@observablehq/plot";
+import PlotFigure from "~/components/PlotFigure";
+import * as d3 from "d3";
+import { useThrottleFn } from '@vueuse/core'
 import { useMeiliSearch } from "#imports"
 export interface SortItem {
     key: string,
@@ -36,17 +37,15 @@ const props = withDefaults(defineProps<Props>(), {
 
 
 
-console.log(props.dataTableServerProps)
-
 const slots = useSlots()
 const sortByRef = toRef(props.sortBy)
 const facetsRef = toRef(props.facets)
-
+const emit = defineEmits(["refresh:search"])
 const { search: msSearch, result: msResult } = useMeiliSearch(props.db)
-const facetStore = useFacetsStore()
 const search: Ref<string> = ref("");
 const filterOrSearch: Ref<FilterItem[] | null> = ref(null)
 const hitsPerPage: Ref<number> = ref(25)
+const itemsPerPage: Ref<number[]> = ref([25, 50, 100])
 const filterError: Ref<string | null> = ref(null)
 const msFilter: Ref<string | undefined> = ref(undefined)
 const page = ref(1)
@@ -58,6 +57,7 @@ const computedTableHeight = computed(() => {
     const computedHeight = height.value - 350
     return computedHeight > minTableHeight.value ? computedHeight : minTableHeight.value
 })
+const plddtRange = ref([0, 100])
 
 // const { pending: pendingDownloadData, downloadCsv } = useCsvDownload(props.db, `df-${props.db}`)
 
@@ -126,7 +126,40 @@ watch([paginationParams, msSortBy, page], ([newParams, newSort, newPage]) => {
 onMounted(async () => {
     searchOrFilter()
 })
+
+const hasPlddt = computed(() => props.db === 'structure')
+
 // Fetch results
+const plddtFilter = computed(() => {
+    const plddtRangeValue = plddtRange.value
+    if (hasPlddt.value && plddtRangeValue?.length === 2) {
+        return `plddts ${plddtRangeValue[0]} TO ${plddtRangeValue[1]}`
+    } else {
+        return undefined
+    }
+
+})
+
+
+const computedFilter = computed(() => {
+    if (toValue(msFilter)) {
+        if (toValue(plddtFilter)) {
+            return `${toValue(msFilter)} AND ${toValue(plddtFilter)}`
+        }
+        else {
+            return toValue(msFilter)
+        }
+    } else {
+        if (toValue(plddtFilter)) {
+            return `${toValue(plddtFilter)}`
+        }
+        else {
+            return undefined
+        }
+    }
+})
+
+
 
 const msError = computed(() => {
     if (filterError.value?.type && filterError.value?.message) {
@@ -134,16 +167,26 @@ const msError = computed(() => {
     } else { return false }
 })
 
+const throttleSearch = useThrottleFn(async () => { searchOrFilter() }, 300)
+
 async function searchOrFilter(pagination = true) {
+
+    // do something, it will be called at most 1 time per second
     try {
         loading.value = true
         // const q = queryInputValue.value === null ? "" : queryInputValue.value
         const q = search.value
+        emit("refresh:search", {
+            index: props.db,
+            query: q,
+            params: { ...notPaginatedParams.value, filter: toValue(computedFilter), sort: msSortBy.value }
+        })
         if (pagination) {
-            await msSearch(q, { ...paginationParams.value, filter: msFilter.value, sort: msSortBy.value })
+            await msSearch(q, { ...paginationParams.value, filter: toValue(computedFilter), sort: msSortBy.value })
+
         }
         else {
-            await msSearch(q, { ...notPaginatedParams.value, filter: msFilter.value, sort: msSortBy.value })
+            await msSearch(q, { ...notPaginatedParams.value, filter: toValue(computedFilter), sort: msSortBy.value })
         }
 
     } catch (error: any) {
@@ -153,9 +196,11 @@ async function searchOrFilter(pagination = true) {
     finally {
         loading.value = false
     }
+
 }
 
 
+
 function clearFilterOrSearch() {
     filterOrSearch.value = null
     searchOrFilter()
@@ -167,11 +212,6 @@ watch(msFilter, async (fos) => {
 
 })
 
-watch(msResult, (newRes) => {
-    facetStore.setFacets({ facetDistribution: newRes.facetDistribution, facetStat: newRes.facetStat })
-}, { deep: true })
-
-
 
 const totalHits = computed(() => {
     return toValue(msResult)?.totalHits ?? toValue(msResult)?.estimatedTotalHits ?? 0
@@ -195,7 +235,7 @@ watch(filterInputValues, (newSoF) => {
 })
 
 watch(search, () => { searchOrFilter() })
-
+// watch(plddtRange, () => { searchOrFilter() })
 const filterStep = computed(() => {
     return filterInputValues.value !== null && filterInputValues.value.length > 0 ? filterInputValues.value?.length % 3 : null
 })
@@ -239,7 +279,7 @@ const autocompleteItems = computed(() => {
             const { type, value } = filterOrSearch.value?.slice(-2, -1)[0]
             const sanitizedValue = value.split("-")[0]
             // console.log("compute new facets")
-            const facetDistri = facetStore.facets?.facetDistribution
+            const facetDistri = msResult.value?.facetDistribution
             // console.log(facetDistri)
             return facetDistri?.[sanitizedValue] ? Object.entries(facetDistri[sanitizedValue]).map(([key, val]) => {
                 return {
@@ -276,32 +316,19 @@ function clearSearch() {
 
 
 
-// function runTextSearch() {
-//     if (canAddTextSearch) {
-//         const item: FilterItem = reactive({
-//             type: 'text', title: search.value, value: search.value, deletable: true, props: { type: "text", deletable: true, }
-//         })
-//         if (Array.isArray(filterOrSearch.value)) {
-//             filterOrSearch.value = [
-//                 ...filterOrSearch.value, item
 
-//             ]
-//         } else {
-//             filterOrSearch.value = [item]
-//         }
-//         search.value = ""
-//         searchOrFilter()
-//     }
-// }
+// const groupSortDomain = computed(() => {
+//     console.log(msResult.value)
+//     return msResult.value ? d3.groupSort(msResult.value?.hits?.filter((d) => d.phylum), (g) => d3.median(g, (d) => d.phylum), (d) => d.type) : []
+// })
 
 
-// function downloadData() {
-//     downloadCsv(search, msFilter, msSortBy, notPaginatedParams)
-// }
 
 </script>
 <template>
     <v-card flat color="transparent">
+        <v-card-text>
+        </v-card-text>
         <v-card-text>
             <v-row>
                 <v-col cols="5">
@@ -327,23 +354,28 @@ function clearSearch() {
                     </v-autocomplete>
                 </v-col>
             </v-row>
+            <v-row v-if="props.db === 'structure'">
+                <v-col>
+                    <v-range-slider v-model="plddtRange" density="compact" hide-details="auto" label="pLDDT" step="0.1"
+                        @update:modelValue="throttleSearch()">
+                        <template v-slot:prepend>
+                            <span hide-details single-line type="number" variant="outlined" density="compact"
+                                style="width: 70px">{{ plddtRange[0] }}</span>
+                        </template>
+                        <template v-slot:append>
+                            <span hide-details single-line type="number" variant="outlined" style="width: 70px"
+                                density="compact">{{ plddtRange[1] }}</span>
+                        </template>
+
+                    </v-range-slider>
+                </v-col>
+            </v-row>
         </v-card-text>
         <v-data-table-server v-if="!msError" v-model:page="page" color="primary" v-bind="dataTableServerProps"
             v-model:items-per-page="hitsPerPage" v-model:sortBy="sortByRef" v-model:expanded="expanded" fixed-header
             :loading="loading" :items="msResult?.hits ?? []" :items-length="totalHits" density="compact"
-            :height="computedTableHeight" class="elevation-1 mt-2">
-            <template #top>
-                <v-toolbar><v-toolbar-title class="text-capitalize">
-                        {{ props.db }}
-                    </v-toolbar-title><v-spacer></v-spacer>
-
-
-                    <!-- <v-btn :loading="pendingDownloadData" :disabled="totalHits > 10000" @click="downloadData" icon
-                        variant="text" class="text-none mr-15">
-                        <v-badge :content="totalHits" color="info" floating>
-                            <v-icon>md:download</v-icon></v-badge></v-btn> -->
-                </v-toolbar>
-            </template>
+            :items-per-page-options="itemsPerPage" :height="computedTableHeight" class="elevation-1 mt-2">
+
             <template v-for="(slot, index) of Object.keys(slots)" :key="index" v-slot:[slot]="data">
                 <slot :name="slot" v-bind="data"></slot>
             </template>
diff --git a/components/content/MolstarPdbePlugin.vue b/components/content/MolstarPdbePlugin.vue
index adc59535c0b917b1e4e8eb624f35076a16c0e982..79949bc6f3a142c50ef336ff92337503c501e63f 100644
--- a/components/content/MolstarPdbePlugin.vue
+++ b/components/content/MolstarPdbePlugin.vue
@@ -196,7 +196,7 @@ const moleculeFormat: Ref<string> = ref("pdb")
 <template>
     <span class="d-flex flex-wrap align-center justify-center">
         <v-col>
-            <v-btn v-if="uniq" size="x-small" variant="tonal" icon="mdi-molecule" @click="setSelectedPdbToFirst()"></v-btn>
+            <v-btn v-if="uniq" size="x-small" variant="tonal" icon="md:visibility" @click="setSelectedPdbToFirst()"></v-btn>
             <v-select v-else v-model="selectedPdb" label="Select PDB" :items="refinedDataUrls" hide-details="auto">
             </v-select>
         </v-col>
diff --git a/components/content/RefseqDb.vue b/components/content/RefseqDb.vue
index f78fdb6954cc8a65a6096c0ddf53adab829be6b8..44b23ff4e8af1baf2c3f760e3194673b2108b161 100644
--- a/components/content/RefseqDb.vue
+++ b/components/content/RefseqDb.vue
@@ -1,17 +1,15 @@
 <script setup lang="ts">
-import { useFacetsStore } from '~~/stores/facets'
 import * as Plot from "@observablehq/plot";
 import PlotFigure from "~/components/PlotFigure";
 import { useDisplay } from "vuetify";
 import type { SortItem } from "@/components/ServerDbTable.vue"
 import { ServerDbTable } from "#components"
 
-const facetStore = useFacetsStore()
 
 const sortBy: Ref<SortItem[]> = ref([{ key: 'type', order: "asc" }])
 const itemValue = ref("id");
 const { width } = useDisplay();
-const distriTool: Ref<string[]> = ref([])
+const scaleTransform: Ref<string[]> = ref([])
 
 const facets = ref([
     "replicon",
@@ -50,11 +48,9 @@ const headers = ref([
         sortable: false
     }
 ])
-const logTransform = computed(() => {
-    return distriTool.value.includes('log')
-})
+
 const fullWidth = computed(() => {
-    return distriTool.value.includes('fullwidth')
+    return layoutPlot.value === 'fullwidth'
 })
 const computedHeaders = computed(() => {
     return [...headers.value, ...availableTaxo.value.map(taxo => {
@@ -64,12 +60,38 @@ const computedHeaders = computed(() => {
         }
     })]
 })
+const { result: msResult } = useMeiliSearch('refseq')
 
 const computedWidth = computed(() => {
     const currentWidth = fullWidth.value ? width.value : width.value / 2
     return Math.max(currentWidth, 550);
 });
 
+const allHits = ref([])
+onMounted(async () => {
+    const params = {
+        facets: ["*"],
+        filter: [],
+        sort: ["type:asc"],
+        limit: 500000
+    }
+    await getAllHits({ index: "refseq", params, query: "" })
+})
+
+async function getAllHits(params) {
+    console.log("refresh hits")
+    console.log(params)
+    console.log(params.index)
+    if (params.index === 'refseq') {
+        console.log(params.index)
+        const { data, error } = await useAsyncMeiliSearch(params)
+        console.log(error.value)
+        console.log(data.value)
+        allHits.value = data.value
+    }
+}
+
+
 const plotHeight = computed(() => {
     return computedWidth.value / 3;
     // return 500
@@ -87,11 +109,10 @@ const dataTableServerProps = computed(() => {
     }
 })
 const defaultBarPlotOptions = computed(() => {
-    const y = logTransform.value ? { nice: true, grid: true, type: 'symlog' } : { nice: true, grid: true, type: "linear" }
-    // const y = { nice: true, grid: true }
+
     return {
         x: { label: null, tickRotate: 45, ticks: 10 },
-        y,
+        y: { grid: true, type: scaleType.value },
         color: { legend: true },
         width: computedWidth.value,
         height: plotHeight.value + 100,
@@ -99,11 +120,10 @@ const defaultBarPlotOptions = computed(() => {
 })
 
 const computedSystemDistribution = computed(() => {
-    if (facetStore.facets?.facetDistribution?.type) {
-        return Object.entries(facetStore.facets.facetDistribution.type).map(([key, value]) => {
+    if (toValue(msResult)?.facetDistribution?.type) {
+        return Object.entries(toValue(msResult).facetDistribution.type).map(([key, value]) => {
             return {
                 type: key,
-                // count: logTransform.value ? Math.log(value) : value 
                 count: value
             }
         }).sort()
@@ -129,8 +149,8 @@ const computedDistriSystemOptions = computed(() => {
     };
 });
 const computedTaxonomyDistribution = computed(() => {
-    if (facetStore.facets?.facetDistribution?.[selectedTaxoRank.value]) {
-        return Object.entries(facetStore.facets.facetDistribution[selectedTaxoRank.value]).map(([key, value]) => {
+    if (toValue(msResult)?.facetDistribution?.[selectedTaxoRank.value]) {
+        return Object.entries(toValue(msResult).facetDistribution[selectedTaxoRank.value]).map(([key, value]) => {
             return {
                 [selectedTaxoRank.value]: key,
                 count: value
@@ -172,71 +192,125 @@ function namesToAccessionChips(names: string[]) {
         return { ...it, href: new URL(it.title, "http://toto.pasteur.cloud").toString() }
     })
 }
-const taxoPanel: Ref<number> = ref(0)
-const systemPanel: Ref<number> = ref(0)
+const systemPanel: Ref<number> = ref(["table"])
+const layoutPlot: Ref<string[]> = ref("grid")
+
+const binPlotOptions = ref({
+    marginLeft: 150,
+    marginBottom: 200,
+    padding: 0,
+    width: 1920,
+    grid: true,
+    x: { tickRotate: 90, tip: true, },
+
+    color: { scheme: "turbo", legend: true },
+})
+
+const binPlotDataOptions = computed(() => {
+    return allHits.value?.hits?.length > 0 ? {
+        ...binPlotOptions.value,
+        color: {
+            ...binPlotOptions.value.color,
+            type: scaleType.value
+        },
+        // fy: { domain: groupSortDomain.value },
+        marks: [
+            Plot.cell(allHits.value?.hits ?? [], Plot.group({ fill: "count" }, { x: "type", y: selectedTaxoRank.value, tip: true, inset: 0.5, sort: { y: "fill" } })),
+        ]
 
+    } : null
 
+})
+const scaleType = ref("linear")
 </script>
 
 <template>
     <v-card flat class="mb-2" color="transparent">
-        <v-toolbar density="compact">
-            <v-toolbar-title>Distributions</v-toolbar-title>
-            <v-btn-toggle v-model="distriTool" multiple density="compact" rounded="false" variant="text" color="primary"
+        <v-toolbar>
+            <!-- <v-toolbar-title>Plots</v-toolbar-title> -->
+            <v-btn-toggle v-model="layoutPlot" density="compact" rounded="false" variant="text" color="primary" mandatory
                 class="mx-2">
-                <v-btn icon="md:fullscreen" value="fullwidth"></v-btn>
-                <v-btn icon="mdi-math-log" value="log"></v-btn>
+                <v-btn icon="md:grid_view" value="grid"></v-btn>
+                <v-btn icon="md:view_agenda" value="fullwidth"></v-btn>
             </v-btn-toggle>
+            <v-spacer></v-spacer>
+            <v-select v-model="selectedTaxoRank" :items="availableTaxo" density="compact" label="Select taxonomic rank"
+                hide-details="auto" class="mx-2"></v-select>
+
+
+            <!-- <v-btn-toggle v-model="scaleTransform" density="compact" mandatory rounded="false" variant="text"
+                color="primary" class="mx-2">
+                <v-btn icon="mdi-math-log" value="linear">linear</v-btn>
+                <v-btn value="pow">pow</v-btn>
+                <v-btn icon="mdi-math-log" value="sqrt">sqrt</v-btn>
+                <v-btn icon="mdi-math-log" value="symlog">symlog</v-btn>
+                <v-btn icon="mdi-math-log" value="log">log</v-btn>
+            </v-btn-toggle> -->
+
+            <v-select v-model="scaleType" class="mx-2" density="compact" :items="['linear', 'sqrt', 'symlog']"
+                label="Scale Type" hide-details="auto"></v-select>
+
+
         </v-toolbar>
-        <v-row align="start" class="my-2">
-
-            <v-col :cols="fullWidth ? 12 : 6">
-
-                <v-card color="transparent" flat>
-                    <v-expansion-panels v-model="systemPanel">
-                        <v-expansion-panel elevation="3">
-                            <v-expansion-panel-title color="grey-lighten-4">Systems</v-expansion-panel-title>
-                            <v-expansion-panel-text>
-                                <PlotFigure :options="unref(computedDistriSystemOptions)" defer></PlotFigure>
-                            </v-expansion-panel-text>
-                        </v-expansion-panel>
-                    </v-expansion-panels>
-                </v-card>
-            </v-col>
-            <v-col :cols="fullWidth ? 12 : 6">
-                <v-card flat color="transparent">
-                    <v-expansion-panels v-model="taxoPanel">
-                        <v-expansion-panel elevation="3" :value="true">
-                            <v-expansion-panel-title color="grey-lighten-4">
-                                Taxonomic
-
-
-                            </v-expansion-panel-title>
-                            <v-expansion-panel-text>
-                                <v-select v-model="selectedTaxoRank" :items="availableTaxo" density="compact"
-                                    label="Select taxonomic rank"></v-select>
-
-
-                                <PlotFigure defer :options="unref(computedDistriTaxoOptions)"></PlotFigure>
-
-                            </v-expansion-panel-text>
-                        </v-expansion-panel>
-                    </v-expansion-panels>
-                </v-card>
-            </v-col>
-        </v-row>
+
+
+        <v-card color="transparent" flat>
+            <v-expansion-panels v-model="systemPanel" class="my-2" density="compact" multiple>
+                <v-expansion-panel elevation="3" value="barplot">
+                    <v-expansion-panel-title color="grey-lighten-4"><v-icon color="primary"
+                            class="mr-2">mdi-chart-bar</v-icon>Systems - Taxonomic</v-expansion-panel-title>
+                    <v-expansion-panel-text>
+                        <v-card flat color="transparent">
+
+                            <v-row align="start">
+                                <v-col :cols="fullWidth ? 12 : 6">
+                                    <PlotFigure :options="unref(computedDistriSystemOptions)" defer></PlotFigure>
+
+                                </v-col>
+                                <v-col :cols="fullWidth ? 12 : 6">
+
+                                    <PlotFigure defer :options="unref(computedDistriTaxoOptions)"></PlotFigure>
+
+                                </v-col>
+                            </v-row>
+                        </v-card>
+
+                    </v-expansion-panel-text>
+                </v-expansion-panel>
+                <v-expansion-panel elevation="3" value="matrix">
+                    <v-expansion-panel-title color="grey-lighten-4"><v-icon color="primary"
+                            class="mr-2">mdi-data-matrix</v-icon>Matrix</v-expansion-panel-title>
+                    <v-expansion-panel-text>
+                        <v-card flat color="transparent">
+                            <PlotFigure v-if="toValue(binPlotDataOptions) !== null" :options="unref(binPlotDataOptions)"
+                                defer>
+                            </PlotFigure>
+                        </v-card>
+                    </v-expansion-panel-text>
+                </v-expansion-panel>
+                <v-expansion-panel elevation="3" value="table">
+                    <v-expansion-panel-title color="grey-lighten-4"><v-icon color="primary"
+                            class="mr-2">mdi-table</v-icon>Table</v-expansion-panel-title>
+                    <v-expansion-panel-text>
+                        <ServerDbTable title="RefSeq" db="refseq" :sortBy="sortBy" :facets="facets"
+                            :data-table-server-props="dataTableServerProps" @refresh:search="getAllHits">
+                            <template #top>
+                                <v-toolbar><v-toolbar-title class="text-capitalize">
+                                        RefSeq
+                                    </v-toolbar-title><v-spacer></v-spacer>
+
+                                </v-toolbar>
+                            </template>
+                            <template #[`item.accession_in_sys`]="{ item }">
+                                <CollapsibleChips :items="namesToAccessionChips(item.accession_in_sys)">
+                                </CollapsibleChips>
+                            </template>
+                        </ServerDbTable>
+                    </v-expansion-panel-text>
+                </v-expansion-panel>
+            </v-expansion-panels>
+
+        </v-card>
+
     </v-card>
-    <ServerDbTable title="RefSeq" db="refseq" :sortBy="sortBy" :facets="facets"
-        :data-table-server-props="dataTableServerProps">
-        <template #top>
-            <v-toolbar><v-toolbar-title class="text-capitalize">
-                    RefSeq
-                </v-toolbar-title><v-spacer></v-spacer>
-
-            </v-toolbar>
-        </template>
-        <template #[`item.accession_in_sys`]="{ item }">
-            <CollapsibleChips :items="namesToAccessionChips(item.accession_in_sys)"></CollapsibleChips>
-        </template>
-    </ServerDbTable>
 </template>
\ No newline at end of file
diff --git a/components/content/StructureDb.vue b/components/content/StructureDb.vue
index f85ee39ff7264cabdf475b0fae4ef092ea94e4eb..8ef19c3ca164964ebb3e1288974c39adde0b9ed1 100644
--- a/components/content/StructureDb.vue
+++ b/components/content/StructureDb.vue
@@ -1,10 +1,13 @@
 <script setup lang="ts">
+import * as Plot from "@observablehq/plot";
+import PlotFigure from "~/components/PlotFigure";
 import type { SortItem } from "@/components/ServerDbTable.vue"
 import { ServerDbTable } from "#components"
 const sortBy: Ref<SortItem[]> = ref([{ key: 'system', order: "asc" }])
 const itemValue = ref("id");
 const facets: Ref<string[]> = ref(["system", "completed"])
 const headers: Ref<Object[]> = ref([
+    { title: 'Structure', key: 'structure', sortable: false, removable: false },
     { title: "System", key: "system", removable: false },
     // { title: "pdb file", key: "pdb" },
     // { title: "fasta", key: "fasta_file" },
@@ -19,12 +22,12 @@ const headers: Ref<Object[]> = ref([
     { title: "iptm+ptm", key: "iptm+ptm", removable: true },
     { title: "pDockQ", key: "pDockQ", removable: true },
     { title: "Type", key: "type", removable: true },
-    { title: 'Structure', key: 'structure', sortable: false, removable: false },
 
 ])
+const { search: msSearch, result: msResult } = useMeiliSearch('structure')
 
 const defaultDataTableServerProps = ref({
-    showExpand: true
+    showExpand: false
 })
 
 const dataTableServerProps = computed(() => {
@@ -35,6 +38,9 @@ const dataTableServerProps = computed(() => {
     }
 })
 
+
+
+
 function namesToCollapsibleChips(names: string[], file: string | null = null) {
     if (file === null) {
         return names.filter((it) => it !== "").map(it => ({ title: it.split("__").pop() }))
@@ -54,6 +60,13 @@ function toSystemName(rawName: string) {
 
 }
 
+
+const plddtDistribution = computed(() => {
+    if (toValue(msResult)?.facetDistribution?.plddts) {
+        return Object.entries(toValue(msResult).facetDistribution.plddts).map(([key, value]) => { })
+    }
+})
+
 function remove(key) {
     headers.value = headers.value.filter(header => header.key !== key)
 }
diff --git a/content/4.refseq.md b/content/4.refseq.md
index 5f47b8c5d7d5cb3a1ce29389a4e0bad75de8a86a..13605c24602416fb9f854975b8b097e60bb42833 100644
--- a/content/4.refseq.md
+++ b/content/4.refseq.md
@@ -5,6 +5,19 @@ navigation: true
 ---
 
 
+
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
+Cras lobortis nulla ac mauris aliquet lacinia. 
+Praesent viverra turpis orci, eget blandit ligula placerat nec. 
+Mauris a libero dui. Aenean sit amet quam at enim molestie tristique nec consequat libero. 
+Vestibulum rutrum tellus nec dui ornare, sit amet euismod velit faucibus. Aenean lectus mauris, convallis non dolor tincidunt, laoreet pulvinar diam. Maecenas at dignissim massa. Curabitur felis felis, maximus vitae mi non, condimentum rutrum urna. Phasellus consectetur libero sit amet iaculis dapibus.
+
+
+
+
+Sed varius eget metus sed congue. Donec ut sodales lectus. Integer auctor maximus quam nec porta. Nulla urna magna, congue in sodales non, blandit eu lorem. Maecenas id massa sit amet libero elementum lobortis ut vel nibh. Integer sed ante eu tellus iaculis porttitor id at ante. Fusce at venenatis ante, et faucibus magna. Integer ut egestas diam. In vel blandit urna. Mauris nec tellus ut orci blandit consectetur. Nulla cursus tellus velit, vitae finibus lacus efficitur ut. 
+
 ::refseq-db
 ::
 
diff --git a/content/5.structure.md b/content/5.structure.md
index 7fdd6f7283a52be0a4afd32e6668323235ad04dc..ea48cb51f4a0b016612b97e8f3589c6f10e8c81c 100644
--- a/content/5.structure.md
+++ b/content/5.structure.md
@@ -5,5 +5,9 @@ navigation: true
 ---
 
 
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras lobortis nulla ac mauris aliquet lacinia. Praesent viverra turpis orci, eget blandit ligula placerat nec. Mauris a libero dui. Aenean sit amet quam at enim molestie tristique nec consequat libero. Vestibulum rutrum tellus nec dui ornare, sit amet euismod velit faucibus. Aenean lectus mauris, convallis non dolor tincidunt, laoreet pulvinar diam. Maecenas at dignissim massa. Curabitur felis felis, maximus vitae mi non, condimentum rutrum urna. Phasellus consectetur libero sit amet iaculis dapibus.
+
+Sed varius eget metus sed congue. Donec ut sodales lectus. Integer auctor maximus quam nec porta. Nulla urna magna, congue in sodales non, blandit eu lorem. Maecenas id massa sit amet libero elementum lobortis ut vel nibh. Integer sed ante eu tellus iaculis porttitor id at ante. Fusce at venenatis ante, et faucibus magna. Integer ut egestas diam. In vel blandit urna. Mauris nec tellus ut orci blandit consectetur. Nulla cursus tellus velit, vitae finibus lacus efficitur ut. 
+
 ::structure-db
 ::
\ No newline at end of file
diff --git a/stores/facets.ts b/stores/facets.ts
deleted file mode 100644
index 1ed39033ea89c0fce85f90025e6dd08866e64b5b..0000000000000000000000000000000000000000
--- a/stores/facets.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { defineStore } from 'pinia'
-import type { FacetDistribution, FacetStat } from 'meilisearch';
-
-
-export interface Facets {
-    facetDistribution: FacetDistribution | undefined;
-    facetStats: FacetStat | undefined;
-}
-
-export const useFacetsStore = defineStore('facets', () => {
-
-
-    const facets: Ref<Facets> = ref({ facetDistribution: undefined, facetStats: undefined })
-
-
-    function setFacets(newFacets: Facets) {
-        // console.log("start set facets")
-        // console.log(newFacets)
-        facets.value = newFacets
-        // console.log("end set facets")
-
-    }
-
-
-    return { facets, setFacets }
-})
\ No newline at end of file