diff --git a/modules/camera/include/vkcv/camera/CameraManager.hpp b/modules/camera/include/vkcv/camera/CameraManager.hpp
index 400a4c453437b38688aaa5e8b032d5b2c53482db..5dbaad43f4b16427dc76cbf45227bf0ee043f0bd 100644
--- a/modules/camera/include/vkcv/camera/CameraManager.hpp
+++ b/modules/camera/include/vkcv/camera/CameraManager.hpp
@@ -14,6 +14,7 @@ namespace vkcv {
      * #CameraManager.
      */
     enum class ControllerType {
+        NONE,
         PILOT,
         TRACKBALL,
         TRACE
@@ -31,10 +32,15 @@ namespace vkcv {
         std::function<void(int, int)> m_resizeHandle;
 
         Window& m_window;
-        std::vector<Camera*> m_cameras;
-        std::vector<CameraController*> m_controllers;
-        uint32_t m_activeControllerIndex;
+        std::vector<Camera> m_cameras;
+        std::vector<ControllerType> m_cameraControllerTypes;
+        uint32_t m_activeCameraIndex;
 
+        PilotCameraController m_pilotController;
+        TrackballCameraController m_trackController;
+
+        double m_lastX;
+        double m_lastY;
 
         /**
          * @brief Binds the camera object to the window event handles.
@@ -104,6 +110,9 @@ namespace vkcv {
          */
         int addCamera();
 
+        // TODO: Add docu!
+        int addCamera(ControllerType controllerType);
+
         /**
          * @brief Gets the stored camera object located at @p cameraIndex.
          * @param cameraIndex The index of the stored camera object.
@@ -111,42 +120,25 @@ namespace vkcv {
          */
         Camera& getCamera(uint32_t cameraIndex);
 
-        /**
-         * @brief Adds a new camera controller object of @p controllerType to the #CameraManager. If the newly created
-         * camera controller object is the first controller object that has been added, it becomes the active
-         * controllerType.
-         * @param[in] controllerType The controllerType type that should be used.
-         * @param[in] cameraIndex The camera index.
-         * @return The index of the camera controllerType.
-         */
-        int addController(ControllerType controllerType, uint32_t cameraIndex);
+        // TODO: Add docu!
+        Camera& getActiveCamera();
 
-        /**
-         * @brief Gets the stored camera controller object located at @p controllerIndex.
-         * @param controllerIndex The controller index.
-         * @return The camera controller object at @p controllerIndex.
-         */
-        CameraController& getController(uint32_t controllerIndex);
+        // TODO: Add docu!
+        void setActiveCamera(uint32_t cameraIndex);
 
-        /**
-         * @brief Binds the stored camera object located at @p cameraIndex to the stored camera controller object
-         * located at @p controllerIndex.
-         * @param cameraIndex The camera index.
-         * @param controllerIndex The controller index.
-         */
-        void bindCameraToController(uint32_t cameraIndex, uint32_t controllerIndex);
+        
 
-        /**
-         * @brief Gets the currently active camera controller that is bound to the window.
-         * @return The currently active camera controller object.
-         */
-        CameraController& getActiveController();
+        // TODO: Add docu!
+        uint32_t getActiveCameraIndex();
 
-        /**
-         * @brief Sets the camera controller located at @p controllerIndex as the active camera controller.
-         * @param controllerIndex The controller index.
-         */
-        void setActiveController(uint32_t controllerIndex);
+        // TODO: Add docu!
+        void setControllerType(uint32_t cameraIndex, ControllerType controllerType);
+
+        // TODO: Add docu!
+        ControllerType getControllerType(uint32_t cameraIndex);
+
+        // TODO: Add docu!
+        CameraController& getControllerByType(ControllerType controllerType);
 
         /**
          * @brief Updates all stored camera controllers in respect to @p deltaTime.
@@ -154,12 +146,5 @@ namespace vkcv {
          */
         void update(double deltaTime);
 
-        /**
-         * @brief Updates the stored camera controller located at @p controllerIndex in respect to @p deltaTime.
-         * @param deltaTime The time that has passed since last update.
-         * @param controllerIndex The controller index.
-         */
-        void update(double deltaTime, uint32_t controllerIndex);
-
     };
 }