diff --git a/pilab/crud/Pi.py b/pilab/crud/Pi.py
index aa72b978e4d956828205dadc1d15ca240539390a..58763ba1277bed297a9ed8cdc4de376f91bc0fb1 100644
--- a/pilab/crud/Pi.py
+++ b/pilab/crud/Pi.py
@@ -7,6 +7,7 @@ from pilab.crud.Host import Host
 from pilab.schemas.Pi import PiType
 from pilab.schemas.Host import HostType
 from pilab.schemas.Cube import CubesType
+from pilab.schemas.ImageBinding import ImageBindingType
 from pilab.events import meta
 
 log.getLogger('sqlalchemy.engine').setLevel(log.WARNING)
@@ -31,42 +32,6 @@ class Pi(object):
         pi = meta.Pi(**vars(db_pi), **host.dict())
         return pi
 
-    @staticmethod
-    def update_image(db: Session, pi_id: int, image_id: int, user_data_id: int):
-        db_pi = db.query(PiType).filter(
-            PiType.host_id == pi_id).first()
-        db_pi.image_id = image_id
-        db_pi.user_data_id = user_data_id
-        db.flush()
-
-    @staticmethod
-    def update_playbook(db: Session, pi_id: int, playbook_id: int):
-        db_pi = db.query(PiType).filter(
-            PiType.host_id == pi_id).first()
-        db_pi.playbook_id = playbook_id
-        db.flush()
- 
-    @staticmethod
-    def assign_image(db: Session, pi_id: int, image_id: int):
-        db_pi = db.query(PiType).filter(
-            PiType.host_id == pi_id).first()
-        db_pi.image_id = image_id
-        db.flush()
-    
-    @staticmethod
-    def assign_host_key(db: Session, pi_id: int, key_id: int):
-        db_pi = db.query(PiType).filter(
-            PiType.host_id == pi_id).first()
-        db_pi.key_id = key_id
-        db.flush()
-
-    @staticmethod
-    def assign_data(db: Session, pi_id: int, user_data_id: int):
-        db_pi = db.query(PiType).filter(
-            PiType.host_id == pi_id).first()
-        db_pi.user_data_id = user_data_id
-        db.flush()
-
     @staticmethod
     def get(db: Session, id: int = None, serial : bytes = None, mac: int = None):#DONE
         if id:
@@ -127,7 +92,13 @@ class Pi(object):
                 PiType.cube_id == db_cube.id
             ).all()
         elif image_id:
-            ids = db.query(PiType.host_id).filter(PiType.image_id == image_id).all()
+            db_image_bindings = db.query(ImageBindingType).filter(
+                ImageBindingType.image_id == image_id
+            ).all()
+            pi_ids = [image_binding.pi_id for image_binding in db_image_bindings]
+            ids = db.query(PiType.host_id).filter(
+                PiType.host_id in pi_ids
+            ).all()
         else:
             ids = db.query(PiType.host_id).all()
         
diff --git a/pilab/schemas/Key.py b/pilab/schemas/Key.py
index 1c4ee03853c928a47bacfa63e4d95a63a024c65d..6aefbb0d92e301a2bb89232439c3dcf8de767cf4 100644
--- a/pilab/schemas/Key.py
+++ b/pilab/schemas/Key.py
@@ -9,8 +9,3 @@ 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/setup.py b/setup.py
index cb6bcfa60495f422237b39f38250bb316e5cff84..d1888dad126d275dcb5e1687e7b063e25fcfdd25 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
 
 setup(
     name='pilab',
-    version='5.1.4',
+    version='5.2.0',
     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',