diff --git a/pilab/events/meta.py b/pilab/events/meta.py
index 4c8818b6085b72990da56652f7da6e4eda40bd01..481193ca0fe43935f57642b9e91f68441d73d8db 100644
--- a/pilab/events/meta.py
+++ b/pilab/events/meta.py
@@ -61,7 +61,7 @@ class Pi_old(Host):
     position: int
     ssh_host_ed25519_key: Optional[str]
 
-class Pi(Host):
+class Pi_legacy(Host):
     """
     representation of pi object with host id
     """
@@ -73,6 +73,14 @@ class Pi(Host):
     playbook_id: Optional[int]
     cube_id: int
 
+class Pi(Host):
+    """
+    representation of pi object with host id
+    """
+    serial: bytes
+    position: int
+    cube_id: int
+
 class PiUpdate(HostUpdate):
     """
     representation of pi object for update
diff --git a/pilab/schemas/Image.py b/pilab/schemas/Image.py
index b9f8ae66e97488482d1724dd6a8a222f72de2656..917bac107e26429fea2be034f230b0e3f3f0cbda 100644
--- a/pilab/schemas/Image.py
+++ b/pilab/schemas/Image.py
@@ -1,4 +1,4 @@
-from sqlalchemy import Column, Integer, ForeignKey, String, Boolean, BigInteger, DateTime
+from sqlalchemy import Column, Integer, ForeignKey, String, Boolean, DateTime
 
 from pilab.database import Base, MAC, SERIAL, IP
 
@@ -13,6 +13,11 @@ class ScriptType(Base):
     script = Column(String)
     script_chroot = Column(String)
 
+class ScriptBindingType(Base):
+    __tablename__ = "script_bindings"
+    script_id = Column(Integer, ForeignKey('scripts.id'), primary_key=True)
+    pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True)
+
 class ImageType(Base):
     __tablename__ = "images"
     id = Column(Integer, primary_key=True)
@@ -25,8 +30,18 @@ class ImageType(Base):
     change = Column(DateTime)
     script_id = Column(Integer, ForeignKey('scripts.id'))
 
+class ImageBindingType(Base):
+    __tablename__ = "image_bindings"
+    image_id = Column(Integer, ForeignKey('images.id'), primary_key=True)
+    pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True)
+
 class UserDataType(Base):
     __tablename__ = "user_data"
     id = Column(Integer, primary_key=True)
     owner = Column(String)
-    data = Column(String)
\ No newline at end of file
+    data = Column(String)
+
+class UserDataBindingType(Base):
+    __tablename__ = "user_data_bindings"
+    user_data_id = Column(Integer, ForeignKey('user_data.id'), primary_key=True)
+    pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True)
\ No newline at end of file
diff --git a/pilab/schemas/Key.py b/pilab/schemas/Key.py
index 35e305353c2806ce8e7e8164fb244af72f8fedc6..1c4ee03853c928a47bacfa63e4d95a63a024c65d 100644
--- a/pilab/schemas/Key.py
+++ b/pilab/schemas/Key.py
@@ -1,4 +1,4 @@
-from sqlalchemy import Column, Integer, String
+from sqlalchemy import Column, Integer, ForeignKey, String
 
 from pilab.database import Base, MAC, SERIAL, IP
 
@@ -9,3 +9,8 @@ class KeyType(Base):
     id = Column(Integer, primary_key=True)
     owner = Column(String)
     host_key = Column(String)
+
+class KeyBindingType(Base):
+    __tablename__ = "key_bindings"
+    key_id = Column(Integer, ForeignKey('keys.id'), primary_key=True)
+    pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True)
\ No newline at end of file
diff --git a/pilab/schemas/Pi.py b/pilab/schemas/Pi.py
index 7b5bdb3877ea549bc49822e1354df7a2c32f4695..32c5b58620dd4fbbb85e08c49abb852f5a7c01d9 100644
--- a/pilab/schemas/Pi.py
+++ b/pilab/schemas/Pi.py
@@ -8,8 +8,4 @@ class PiType(Base):
     host_id = Column(Integer, ForeignKey('hosts.id'), primary_key=True)
     cube_id = Column(Integer, ForeignKey('cubes.id'), primary_key=True)
     serial = Column(SERIAL())
-    position = Column(Integer)
-    user_data_id = Column(Integer, ForeignKey('user_data.id'))
-    image_id = Column(Integer, ForeignKey('images.id'))
-    playbook_id = Column(Integer)
-    key_id = Column(Integer, ForeignKey('keys.id'))
\ No newline at end of file
+    position = Column(Integer)
\ No newline at end of file
diff --git a/setup.py b/setup.py
index df4658fbad4192097a826105b41b65b85e40ba09..ffb615b9d65133fcb1490272fba53e985aa6d231 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
 
 setup(
     name='pilab',
-    version='5.0.2',
+    version='5.0.3',
     description='Shared-Libs for the pi-lab microservices',
     url='https://code.fbi.h-da.de/api/v4/projects/27896/packages/pypi/pilab',
     author='Max Reinheimer',