diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index f314297f..473469e7 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -26,6 +26,6 @@ target_include_directories(stb INTERFACE stb)
 set(LIBTYPE "STATIC")
 add_subdirectory(openal-soft)
 
-set(BUILD_TESTS OFF CACHE BOOL "Build tests")
-set(BUILD_EXAMPLES OFF CACHE BOOL "Build examples")
+set(BUILD_TESTS OFF CACHE BOOL "Build tests" FORCE)
+set(BUILD_EXAMPLES OFF CACHE BOOL "Build examples" FORCE) 
 add_subdirectory(AudioFile)
\ No newline at end of file
diff --git a/src/dawn/display/animation/SimpleCallbackAnimation.hpp b/src/dawn/display/animation/SimpleCallbackAnimation.hpp
index 8c15b5d4..d5abe620 100644
--- a/src/dawn/display/animation/SimpleCallbackAnimation.hpp
+++ b/src/dawn/display/animation/SimpleCallbackAnimation.hpp
@@ -23,7 +23,7 @@ namespace Dawn {
       }
 
       void onValueModified() override {
-        SimpleAnimation::onValueModified();
+        SimpleAnimation<T>::onValueModified();
         this->invoke();
       }
 
@@ -32,7 +32,7 @@ namespace Dawn {
        * Construct a new Simple Function Animation object
        */
       SimpleCallbackAnimation() :
-        SimpleAnimation(&value)
+        SimpleAnimation<T>(&value)
       {
       }
 
diff --git a/src/dawn/prefab/SceneItemPrefab.hpp b/src/dawn/prefab/SceneItemPrefab.hpp
index 92652497..03eab31e 100644
--- a/src/dawn/prefab/SceneItemPrefab.hpp
+++ b/src/dawn/prefab/SceneItemPrefab.hpp
@@ -6,6 +6,7 @@
 #pragma once
 #include "Prefab.hpp"
 #include "scene/SceneItem.hpp"
+#include "game/DawnGame.hpp"
 
 namespace Dawn {
   template<class T>
diff --git a/src/dawn/visualnovel/events/characters/VIsualNovelTransformItemEvent.hpp b/src/dawn/visualnovel/events/characters/VisualNovelTransformItemEvent.hpp
similarity index 100%
rename from src/dawn/visualnovel/events/characters/VIsualNovelTransformItemEvent.hpp
rename to src/dawn/visualnovel/events/characters/VisualNovelTransformItemEvent.hpp
diff --git a/src/dawn/visualnovel/scene/SimpleVNScene.hpp b/src/dawn/visualnovel/scene/SimpleVNScene.hpp
index ca2d9084..ae070f8b 100644
--- a/src/dawn/visualnovel/scene/SimpleVNScene.hpp
+++ b/src/dawn/visualnovel/scene/SimpleVNScene.hpp
@@ -13,7 +13,7 @@
 #include "visualnovel/events/VisualNovelTextboxEvent.hpp"
 #include "visualnovel/events/timing/VisualNovelPauseEvent.hpp"
 #include "visualnovel/events/VisualNovelFadeEvent.hpp"
-#include "visualnovel/events/VisualNovelCAllbackEvent.hpp"
+#include "visualnovel/events/VisualNovelCallbackEvent.hpp"
 #include "visualnovel/events/VisualNovelChangeSimpleBackgroundEvent.hpp"
 
 namespace Dawn {
diff --git a/src/dawnpokergame/prefabs/characters/CharacterPrefab.hpp b/src/dawnpokergame/prefabs/characters/CharacterPrefab.hpp
index 55e37b56..66c188cd 100644
--- a/src/dawnpokergame/prefabs/characters/CharacterPrefab.hpp
+++ b/src/dawnpokergame/prefabs/characters/CharacterPrefab.hpp
@@ -47,7 +47,7 @@ namespace Dawn {
       TiledSprite *tiledSprite;
       AudioSource *audioSource;
 
-      CharacterPrefab(Scene *s, sceneitemid_t i) : SceneItemPrefab(s, i) {}
+      CharacterPrefab(Scene *s, sceneitemid_t i) : SceneItemPrefab<T>(s, i) {}
       
       void prefabInit(AssetManager *man) override {
         characterTexture = man->get<TextureAsset>(T::getCharacterTexture());
@@ -57,24 +57,24 @@ namespace Dawn {
         auto emotion = this->defineAndGetInitialEmotion(man);
 
         // Components
-        meshRenderer = this->addComponent<MeshRenderer>();
-        meshHost = this->addComponent<MeshHost>();
+        meshRenderer = SceneItem::addComponent<MeshRenderer>();
+        meshHost = SceneItem::addComponent<MeshHost>();
 
-        material = this->addComponent<SimpleTexturedMaterial>();
+        material = SceneItem::addComponent<SimpleTexturedMaterial>();
         material->texture = &characterTexture->texture;
 
-        vnCharacter = this->addComponent<VisualNovelCharacter>();
+        vnCharacter = SceneItem::addComponent<VisualNovelCharacter>();
         vnCharacter->nameKey = T::getLanguagePrefix() + ".name";
 
-        animation = this->addComponent<AnimationController>();
+        animation = SceneItem::addComponent<AnimationController>();
         
-        tiledSprite = this->addComponent<TiledSprite>();
+        tiledSprite = SceneItem::addComponent<TiledSprite>();
         tiledSprite->setTileset(&characterTileset->tileset);
         float_t ratio = characterTileset->tileset.getTileWidth() / characterTileset->tileset.getTileHeight();
         tiledSprite->setSize(glm::vec2(ratio, 1.0f));
         tiledSprite->setTile(emotion.tile);
 
-        audioSource = this->addComponent<AudioSource>();
+        audioSource = SceneItem::addComponent<AudioSource>();
         
         this->transform.setLocalPosition(glm::vec3(0, 0, 0)); 
       }
diff --git a/src/dawnpokergame/scenes/Scene_1.hpp b/src/dawnpokergame/scenes/Scene_1.hpp
index 541f14d9..85ddfeb0 100644
--- a/src/dawnpokergame/scenes/Scene_1.hpp
+++ b/src/dawnpokergame/scenes/Scene_1.hpp
@@ -8,7 +8,7 @@
 #include "scenes/Scene_2.hpp"
 #include "prefabs/characters/DeathPrefab.hpp"
 #include "visualnovel/events/characters/VisualNovelFadeCharacterEvent.hpp"
-#include "visualnovel/events/characters/VIsualNovelTransformItemEvent.hpp"
+#include "visualnovel/events/characters/VisualNovelTransformItemEvent.hpp"
 #include "visualnovel/events/timing/VisualNovelBatchEvent.hpp"
 
 namespace Dawn {