diff --git a/include/asset.h b/include/asset.h
new file mode 100644
index 0000000000000000000000000000000000000000..a2e1cd798d41dfef6da571748b0f202dbeb8a32c
--- /dev/null
+++ b/include/asset.h
@@ -0,0 +1,15 @@
+#ifndef __ASSET_H__
+#define __ASSET_H__
+
+#include "logger.h"
+
+class Asset
+{
+	public:
+		Asset();
+		~Asset();
+	private:
+		Logger& _logger;
+};
+
+#endif // __ASSET_H__
diff --git a/include/game-engine.h b/include/game-engine.h
index 4f92753c5626595e9dd54380754d710edaf696d0..d58922982ddc1c6cecd87627157b048859e289a2 100644
--- a/include/game-engine.h
+++ b/include/game-engine.h
@@ -19,11 +19,15 @@ class GameEngine
 		void update();
 		void close();
 		Scene* currentScene();
-		void changeScene( Scene scene );
+		// void changeScene( Scene scene );
 		// std::vector< Asset& > getAssets();
 		// Window& getWindow();
 
+		std::vector<Asset> getAssets();
+		void sUserInput();
+
 		bool isRunning;
+		void handleInput();
 	private:
 		EntityManager _entityManager;
 		Logger& _logger;
@@ -32,7 +36,7 @@ class GameEngine
 
 		// Window* _window;
 		// std::vector<Asset> _assets;
-		std::map< std::string, Scene > _scenes;
+		// std::map< std::string, Scene > _scenes;
 
 		/* Systems */
 		// sUserInput
diff --git a/include/scene.h b/include/scene.h
index 149f98d55d7c0700570d500b4a18273afef7155c..79747924cbe0c76576546ff48b4cfca9b373fb19 100644
--- a/include/scene.h
+++ b/include/scene.h
@@ -1,14 +1,33 @@
 #ifndef __SCENE_H__ 
 #define __SCENE_H__ 
 
+#include <map>
+#include <string>
+#include <vector>
+
 #include "logger.h"
+#include "asset.h"
+#include "entities/entity-generic.h"
+#include "entity-manager.h"
 
 class Scene{
 	public:
 		Scene();
 		~Scene();
+
+		virtual void update() = 0;
+		virtual void simulate() = 0;
+		virtual void doAction() = 0;
+		virtual void registerAction() = 0;
 	private:
+		std::vector<Asset> _assets;
 		Logger& _logger;
+
+		EntityManager _entities;
+		size_t _frame;
+
+		bool _hasEnded = false;
+		std::map< size_t, std::string> _actionMap;
 };
 
 #endif // __SCENE_H__ 
diff --git a/src/asset.cpp b/src/asset.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b3b506fbf9964135bf6426579e2d5b7b9ac53510
--- /dev/null
+++ b/src/asset.cpp
@@ -0,0 +1,6 @@
+#include "asset.h"
+
+Asset::Asset()
+	: _logger( Logger::instance() )
+{ this->_logger.info( "New asset created" ); }
+Asset::~Asset(){}
diff --git a/src/game-engine.cpp b/src/game-engine.cpp
index ea8cbdcb7f94b39c6400b8e5260f8b90af310c7d..1846be3ac4a2e7edafa13d9dc7e2e7bb391b9f50 100644
--- a/src/game-engine.cpp
+++ b/src/game-engine.cpp
@@ -16,7 +16,7 @@ void GameEngine::init()
 	this->isRunning = false;
 	this->_currScene = "";
 }
-void GameEngine::changeScene( Scene scene ){}
+// void GameEngine::changeScene( Scene scene ){}
 Scene* GameEngine::currentScene()
 {
 	return nullptr;
@@ -29,3 +29,4 @@ void GameEngine::update()
 {
 	this->_entityManager.update();
 }
+void GameEngine::handleInput() {  }