diff --git a/libs/shared/lib/data-access/api/eventBus.tsx b/libs/shared/lib/data-access/api/eventBus.tsx
index da623966ee559403111ef1b33425c61dd10a7ed7..41a21217a79a2f91854e23343631213f8040913a 100644
--- a/libs/shared/lib/data-access/api/eventBus.tsx
+++ b/libs/shared/lib/data-access/api/eventBus.tsx
@@ -49,7 +49,7 @@ import {
 import { URLParams, getParam, deleteParam } from './url';
 import { VisState, setVisualizationState } from '../store/visualizationSlice';
 import { isEqual } from 'lodash-es';
-import { addSchemaAttributeDimensions, addSchemaAttributeInformation } from '../store/schemaSlice';
+import { setSchemaAttributeDimensions, setSchemaAttributeInformation } from '../store/schemaSlice';
 import { addError } from '@graphpolaris/shared/lib/data-access/store/configSlice';
 import { unSelect } from '../store/interactionSlice';
 import { SchemaGraphStats } from '../../schema';
@@ -114,12 +114,12 @@ export const EventBus = (props: { onRunQuery: Function; onAuthorized: Function }
     );
 
     Broker.instance().subscribe((data: SchemaGraphStats) => {
-      dispatch(addSchemaAttributeInformation(data));
+      dispatch(setSchemaAttributeInformation(data));
       dispatch(addInfo('Received attribute information'));
     }, 'schema_stats_result');
 
     Broker.instance().subscribe((data: any) => {
-      dispatch(addSchemaAttributeDimensions(data));
+      dispatch(setSchemaAttributeDimensions(JSON.parse(data)));
       dispatch(addInfo('Attribute dimensions added'));
     }, 'schema_inference');
 
diff --git a/libs/shared/lib/data-access/store/hooks.ts b/libs/shared/lib/data-access/store/hooks.ts
index 9f1ab6ce9a0d0cb1ad0b4e1019d41c6c1633022d..a9e0dd94f835a05ba4aef220c8260c36362fe1b7 100644
--- a/libs/shared/lib/data-access/store/hooks.ts
+++ b/libs/shared/lib/data-access/store/hooks.ts
@@ -1,6 +1,13 @@
 import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';
 import { GraphQueryResult, selectGraphQueryResult, selectGraphQueryResultMetaData } from './graphQueryResultSlice';
-import { schemaGraph, selectSchemaLayout, schemaSettingsState, SchemaSettings } from './schemaSlice';
+import {
+  schemaGraph,
+  selectSchemaLayout,
+  schemaSettingsState,
+  SchemaSettings,
+  schemaStatsState,
+  schemaInferenceState,
+} from './schemaSlice';
 import type { RootState, AppDispatch } from './store';
 import { ConfigStateI, configState } from '@graphpolaris/shared/lib/data-access/store/configSlice';
 import {
@@ -27,7 +34,7 @@ import {
 } from './searchResultSlice';
 import { AllLayoutAlgorithms } from '../../graph-layout';
 import { QueryGraphEdgeHandle, QueryMultiGraph } from '../../querybuilder';
-import { SchemaGraph } from '../../schema';
+import { SchemaGraph, SchemaGraphInference, SchemaGraphStats } from '../../schema';
 import { GraphMetadata } from '../statistics';
 import { SelectionStateI, FocusStateI, focusState, selectionState } from './interactionSlice';
 import { VisualizationSettingsType } from '../../vis/common';
@@ -44,6 +51,8 @@ export const useGraphQueryResultMeta: () => GraphMetadata | undefined = () => us
 // Gives the schema
 export const useSchemaGraph: () => SchemaGraph = () => useAppSelector(schemaGraph);
 export const useSchemaSettings: () => SchemaSettings = () => useAppSelector(schemaSettingsState);
+export const useSchemaStats: () => SchemaGraphStats = () => useAppSelector(schemaStatsState);
+export const useSchemaInference: () => SchemaGraphInference = () => useAppSelector(schemaInferenceState);
 export const useSchemaLayout: () => AllLayoutAlgorithms = () => useAppSelector(selectSchemaLayout);
 
 // Querybuilder Slices
diff --git a/libs/shared/lib/data-access/store/schemaSlice.ts b/libs/shared/lib/data-access/store/schemaSlice.ts
index fd21442faa5849e5fd848c6a070f4e29ebecbe5a..39bd69e4e9e631e7800c908aa7e5e986a8968fb9 100644
--- a/libs/shared/lib/data-access/store/schemaSlice.ts
+++ b/libs/shared/lib/data-access/store/schemaSlice.ts
@@ -25,8 +25,8 @@ type schemaSliceI = {
 export const initialState: schemaSliceI = {
   graph: new SchemaGraphology().export(),
   graphInference: {
-    nodeInference: {},
-    edgeInference: {},
+    nodes: {},
+    edges: {},
   },
   graphStats: {
     nodeStats: {},
@@ -59,11 +59,11 @@ export const schemaSlice = createSlice({
       state.settings = action.payload;
     },
 
-    addSchemaAttributeDimensions: (state, action: PayloadAction<SchemaGraphInference>) => {
+    setSchemaAttributeDimensions: (state, action: PayloadAction<SchemaGraphInference>) => {
       state.graphInference = action.payload;
     },
 
-    addSchemaAttributeInformation: (state, action: PayloadAction<SchemaGraphStats>) => {
+    setSchemaAttributeInformation: (state, action: PayloadAction<SchemaGraphStats>) => {
       state.graphStats = action.payload;
     },
   },
@@ -73,11 +73,13 @@ export const {
   setSchema,
   setSchemaSettings,
   clearSchema,
-  addSchemaAttributeDimensions,
-  addSchemaAttributeInformation,
+  setSchemaAttributeDimensions,
+  setSchemaAttributeInformation,
 } = schemaSlice.actions;
 
 export const schemaSettingsState = (state: RootState) => state.schema.settings;
+export const schemaInferenceState = (state: RootState) => state.schema.graphInference;
+export const schemaStatsState = (state: RootState) => state.schema.graphStats;
 
 /**
  * Select the schema and convert it to a graphology object
diff --git a/libs/shared/lib/querybuilder/model/graphology/utils.ts b/libs/shared/lib/querybuilder/model/graphology/utils.ts
index 7bc9e057824cc1f419a3b4a262757ee77f91ef7c..cf85cc7ced9e4cd96716bfc10c7929dedaea7e90 100644
--- a/libs/shared/lib/querybuilder/model/graphology/utils.ts
+++ b/libs/shared/lib/querybuilder/model/graphology/utils.ts
@@ -12,7 +12,7 @@ import {
 } from './model';
 import { XYPosition } from 'reactflow';
 import { Handles, QueryElementTypes } from '../reactflow';
-import { SchemaAttribute, SchemaAttributeTypes } from '@graphpolaris/shared/lib/schema';
+import { SchemaAttribute, SchemaGraphInference } from '@graphpolaris/shared/lib/schema';
 import { InputNodeType, InputNodeTypeTypes } from '../logic/general';
 import { checkForMetaAttributes } from './metaAttributes';
 
@@ -60,7 +60,11 @@ export class QueryMultiGraphology extends Graph<QueryGraphNodes, QueryGraphEdges
     return attributes;
   }
 
-  public addPill2Graphology(attributes: QueryGraphNodes, optAttributes: SchemaAttribute[] | undefined = undefined): QueryGraphNodes {
+  public addPill2Graphology(
+    attributes: QueryGraphNodes,
+    optAttributes: SchemaAttribute[] | undefined = undefined,
+    schemaInference: SchemaGraphInference | undefined = undefined,
+  ): QueryGraphNodes {
     attributes = this.configureDefaults(attributes);
     if (!attributes.type || !attributes.name || !attributes.id) throw Error('type or name is not defined');
 
@@ -82,7 +86,7 @@ export class QueryMultiGraphology extends Graph<QueryGraphNodes, QueryGraphEdges
             ...defaultHandleData,
             attributeName: optAttribute.name,
             // attributeType: optAttribute.type,
-            attributeDimension: optAttribute.dimension,
+            attributeDimension: undefined, // FIXME
             handleType: Handles.EntityAttribute,
           },
         });
@@ -98,7 +102,7 @@ export class QueryMultiGraphology extends Graph<QueryGraphNodes, QueryGraphEdges
             ...defaultHandleData,
             attributeName: optAttribute.name,
             // attributeType: optAttribute.type,
-            attributeDimension: optAttribute.dimension,
+            attributeDimension: undefined, // FIXME
             handleType: Handles.RelationAttribute,
           },
         });
diff --git a/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx b/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx
index f79f55f8636c9ce05f7a8508963d7d1ec2f6f59a..b392032c70a0418ebee83768310b09ccdf366bec 100644
--- a/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx
+++ b/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx
@@ -4,6 +4,7 @@ import {
   useQuerybuilderHash,
   useQuerybuilderSettings,
   useSchemaGraph,
+  useSchemaInference,
   useSearchResultQB,
 } from '@graphpolaris/shared/lib/data-access/store';
 import { clearQB, setQuerybuilderGraphology, toQuerybuilderGraphology } from '@graphpolaris/shared/lib/data-access/store/querybuilderSlice';
@@ -71,6 +72,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
   var edgeTypes = useMemo(() => ({ connection: ConnectionLine, attribute_connection: ConnectionLine }), []);
 
   const schemaGraph = useSchemaGraph();
+  const schemaInference = useSchemaInference();
   const schema = useMemo(() => toSchemaGraphology(schemaGraph), [schemaGraph]);
   const graph = useQuerybuilderGraph();
   const qbHash = useQuerybuilderHash();
@@ -197,6 +199,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
             attributes: [],
           },
           schema.getNodeAttribute(dragData.name, 'attributes'),
+          schemaInference,
         );
 
         dispatch(setQuerybuilderGraphology(graphologyGraph));
@@ -619,7 +622,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
             if (!ret) setToggleSettings(undefined);
           }}
         >
-          <DialogContent>
+          <DialogContent className="w-fit">
             <QueryBuilderLogicPillsPanel
               onClick={(v) => {
                 connectingNodeId.current = null;
diff --git a/libs/shared/lib/querybuilder/panel/querysidepanel/queryBuilderLogicPillsPanel.tsx b/libs/shared/lib/querybuilder/panel/querysidepanel/queryBuilderLogicPillsPanel.tsx
index fb74fe2cd51b3409448ab981bda18d2e8aec6aee..3b389e4c6695ca500b12fa141d11029120fcea47 100644
--- a/libs/shared/lib/querybuilder/panel/querysidepanel/queryBuilderLogicPillsPanel.tsx
+++ b/libs/shared/lib/querybuilder/panel/querysidepanel/queryBuilderLogicPillsPanel.tsx
@@ -24,8 +24,7 @@ export const QueryBuilderLogicPillsPanel = (props: {
   let filterType = props.editNode
     ? props.editNode.data.logic.input.type
     : ((props.connection?.params?.handleId ? toHandleData(props.connection.params.handleId).attributeType : null) as string);
-  if (!filterType) return <></>;
-  else if (filterType === 'string') filterType = 'string';
+  if (filterType === 'string') filterType = 'string';
   else if (filterType === 'int' || filterType === 'float') filterType = 'number';
 
   const dataOps = [
@@ -156,9 +155,9 @@ export const QueryBuilderLogicPillsPanel = (props: {
   };
 
   return (
-    <div className={props.className + ' card'}>
+    <div className={props.className + ' card w-fit'}>
       {props.title && <h1 className="card-title mb-7">{props.title}</h1>}
-      <div className="gap-1 flex">
+      <div className="gap-1 flex w-fit">
         <TooltipProvider delayDuration={50}>
           {dataOps.map((item, index) => (
             <Tooltip key={item.title}>
@@ -192,14 +191,14 @@ export const QueryBuilderLogicPillsPanel = (props: {
           </div>
         ))}
       </div>
-      <div className="overflow-x-hidden h-[75rem] w-full mt-1">
-        <ul className="menu p-0 [&_li>*]:rounded-none w-full pb-10 h-full gap-1">
+      <div className="mt-1 overflow-x-hidden h-[80vh]">
+        <ul className="pb-10 gap-1 flex flex-col w-full h-full">
           {Object.values(AllLogicMap)
             .filter((item) => !filterType || item.key.toLowerCase().includes(filterType))
             .filter((item) => selectedOp === -1 || item.key.toLowerCase().includes(dataOps?.[selectedOp].title))
             .filter((item) => selectedType === -1 || item.key.toLowerCase().includes(dataTypes?.[selectedType].title))
             .map((item, index) => (
-              <li key={item.key + item.description} className="h-fit bg-white border-[1px] border-secondary-500 rounded-sm">
+              <li key={item.key + item.description} className="px-3 py-2 h-fit bg-white border-[1px] border-secondary-500 rounded-sm">
                 <span
                   data-tip={item.description}
                   className="flex before:w-[10rem] before:text-center tooltip tooltip-bottom text-start "
@@ -210,11 +209,6 @@ export const QueryBuilderLogicPillsPanel = (props: {
                     else onNewNodeFromPopup(item);
                   }}
                 >
-                  {item.icon && (
-                    <div className="w-[1rem] rounded-sm justify-center flex">
-                      <Icon component={item.icon} size={20} />
-                    </div>
-                  )}
                   <span className="w-full">{item.name}</span>
                   <span className="flex scale-75">
                     {item.key.toLowerCase().includes('filter') && <Icon component="icon-[ic--baseline-filter-alt]" size={20} />}
diff --git a/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdown.tsx b/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdown.tsx
index 80ec774556ef11bc087271a0dd3bcca4d14a511f..2748689650c03cdb9e7cc241793ca393ea34f3e5 100644
--- a/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdown.tsx
+++ b/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdown.tsx
@@ -10,7 +10,6 @@ import {
 import { Button, TextInput, useAppDispatch, useQuerybuilderAttributesShown } from '../../..';
 import { attributeShownToggle } from '@graphpolaris/shared/lib/data-access/store/querybuilderSlice';
 import { isEqual } from 'lodash-es';
-import { QueryBuilderDispatcherContext } from '../../panel/QueryBuilderDispatcher';
 import { PillDropdownItem } from './PillDropdownItem';
 
 type PillDropdownProps = {
diff --git a/libs/shared/lib/schema/model/FromBackend.ts b/libs/shared/lib/schema/model/FromBackend.ts
index 5158465e19fc402c7bc8baf3bf0be99f6064aea6..d6cfa60d0bb40df3fab6bd040964df0b66a6a20d 100644
--- a/libs/shared/lib/schema/model/FromBackend.ts
+++ b/libs/shared/lib/schema/model/FromBackend.ts
@@ -48,8 +48,8 @@ export type SchemaNode = {
 };
 
 export type SchemaGraphInference = {
-  nodeInference: Record<string, Record<string, DimensionType>>; // node key -> attribute label -> dimension
-  edgeInference: Record<string, Record<string, DimensionType>>;
+  nodes: Record<string, Record<string, DimensionType>>; // node key -> attribute label -> dimension
+  edges: Record<string, Record<string, DimensionType>>;
 };
 
 export type SchemaGraphStats = {