diff --git a/client/assets/entities/playerArrow/playerArrow.png.import b/client/assets/entities/playerArrow/playerArrow.png.import
deleted file mode 100644
index e226ddb01849ae62ba2912918694aa9fc84bf8f3..0000000000000000000000000000000000000000
--- a/client/assets/entities/playerArrow/playerArrow.png.import
+++ /dev/null
@@ -1,36 +0,0 @@
-[remap]
-
-importer="texture"
-type="StreamTexture"
-path.s3tc="res://.import/playerArrow.png-e97837ed9d5dd05df0543bd68ce1f6fa.s3tc.stex"
-path.etc2="res://.import/playerArrow.png-e97837ed9d5dd05df0543bd68ce1f6fa.etc2.stex"
-metadata={
-"imported_formats": [ "s3tc", "etc2" ],
-"vram_texture": true
-}
-
-[deps]
-
-source_file="res://assets/entities/playerArrow/playerArrow.png"
-dest_files=[ "res://.import/playerArrow.png-e97837ed9d5dd05df0543bd68ce1f6fa.s3tc.stex", "res://.import/playerArrow.png-e97837ed9d5dd05df0543bd68ce1f6fa.etc2.stex" ]
-
-[params]
-
-compress/mode=2
-compress/lossy_quality=0.7
-compress/hdr_mode=0
-compress/bptc_ldr=0
-compress/normal_map=0
-flags/repeat=true
-flags/filter=true
-flags/mipmaps=true
-flags/anisotropic=false
-flags/srgb=2
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
-stream=false
-size_limit=0
-detect_3d=false
-svg/scale=1.0
diff --git a/client/scenes/autoloads/gamestate.gd b/client/autoloads/gamestate.gd
similarity index 86%
rename from client/scenes/autoloads/gamestate.gd
rename to client/autoloads/gamestate.gd
index 19a0611fef23e7c2b13990c84ff7b2d0efa8ea3d..2d65ccd098bcf5ec3c2217be83cb59772039e8e5 100644
--- a/client/scenes/autoloads/gamestate.gd
+++ b/client/autoloads/gamestate.gd
@@ -37,8 +37,8 @@ puppet func startGame():
 
 	get_node("/root/lobby").hide()
 	
-	var game = preload("res://scenes/levels/game/game.tscn").instance()
-	var player_scene = preload("res://scenes/entities/player/player.tscn")
+	var game = preload("res://levels/test/game.tscn").instance()
+	var player_scene = preload("res://entities/characters/player.tscn")
 	get_tree().get_root().add_child(game)
 	
 	# TODO: check (and perhaps) the scene changing functionality
@@ -58,5 +58,5 @@ puppet func startGame():
 		
 		i+=1
 		
-	var playerArrow = preload("res://scenes/entities/playerArrow/playerArrow.tscn").instance()
+	var playerArrow = preload("res://entities/characters/playerArrow.tscn").instance()
 	get_node(GAMEPATH+str(get_tree().get_network_unique_id())).add_child(playerArrow)
\ No newline at end of file
diff --git a/client/scenes/entities/player/player.gd b/client/entities/characters/player.gd
similarity index 100%
rename from client/scenes/entities/player/player.gd
rename to client/entities/characters/player.gd
diff --git a/client/scenes/entities/player/player.tscn b/client/entities/characters/player.tscn
similarity index 85%
rename from client/scenes/entities/player/player.tscn
rename to client/entities/characters/player.tscn
index 3cfc97070d9f06f2c9f605a0f46537fc35f9860a..27fb14fa6b16c22833b18417730590721df0bdf4 100644
--- a/client/scenes/entities/player/player.tscn
+++ b/client/entities/characters/player.tscn
@@ -1,6 +1,6 @@
 [gd_scene load_steps=2 format=2]
 
-[ext_resource path="res://scenes/entities/player/player.gd" type="Script" id=1]
+[ext_resource path="res://entities/characters/player.gd" type="Script" id=1]
 
 [node name="Player" type="KinematicBody"]
 script = ExtResource( 1 )
diff --git a/client/scenes/entities/playerArrow/playerArrow.tscn b/client/entities/characters/playerArrow.tscn
similarity index 64%
rename from client/scenes/entities/playerArrow/playerArrow.tscn
rename to client/entities/characters/playerArrow.tscn
index 956f3ef3ff4e514ae7d876e029db18262ff7bd22..96d57279e2fc887a3edbdf2733153cb40ed8806c 100644
--- a/client/scenes/entities/playerArrow/playerArrow.tscn
+++ b/client/entities/characters/playerArrow.tscn
@@ -1,6 +1,6 @@
 [gd_scene load_steps=2 format=2]
 
-[ext_resource path="res://assets/entities/playerArrow/playerArrow.png" type="Texture" id=1]
+[ext_resource path="res://models/player/playerArrow/playerArrow.png" type="Texture" id=1]
 
 [node name="playerArrow" type="Sprite3D"]
 transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.75, 0 )
diff --git a/client/scenes/levels/lobby/lobby.gd b/client/levels/lobby/lobby.gd
similarity index 100%
rename from client/scenes/levels/lobby/lobby.gd
rename to client/levels/lobby/lobby.gd
diff --git a/client/scenes/levels/lobby/lobby.tscn b/client/levels/lobby/lobby.tscn
similarity index 96%
rename from client/scenes/levels/lobby/lobby.tscn
rename to client/levels/lobby/lobby.tscn
index 0d19c5a3093e480d13c13afacaa0bd4cb392609b..13812ca8933b0511dd3ffe8f597c5c1df3e1550a 100644
--- a/client/scenes/levels/lobby/lobby.tscn
+++ b/client/levels/lobby/lobby.tscn
@@ -1,6 +1,6 @@
 [gd_scene load_steps=2 format=2]
 
-[ext_resource path="res://scenes/levels/lobby/lobby.gd" type="Script" id=1]
+[ext_resource path="res://levels/lobby/lobby.gd" type="Script" id=1]
 
 [node name="lobby" type="Control"]
 anchor_right = 1.0
diff --git a/client/scenes/entities/bloc/bloc.tscn b/client/levels/test/bloc/bloc.tscn
similarity index 100%
rename from client/scenes/entities/bloc/bloc.tscn
rename to client/levels/test/bloc/bloc.tscn
diff --git a/client/scenes/levels/game/game.gd b/client/levels/test/game.gd
similarity index 100%
rename from client/scenes/levels/game/game.gd
rename to client/levels/test/game.gd
diff --git a/client/scenes/levels/game/game.tscn b/client/levels/test/game.tscn
similarity index 85%
rename from client/scenes/levels/game/game.tscn
rename to client/levels/test/game.tscn
index b024073bf74f71db10408aecf92de1329ff4fe5c..0c1ce374530b1ef0854a124b9c6f309e998d30ef 100644
--- a/client/scenes/levels/game/game.tscn
+++ b/client/levels/test/game.tscn
@@ -1,7 +1,7 @@
 [gd_scene load_steps=3 format=2]
 
-[ext_resource path="res://scenes/levels/game/game.gd" type="Script" id=1]
-[ext_resource path="res://scenes/entities/bloc/bloc.tscn" type="PackedScene" id=2]
+[ext_resource path="res://levels/test/game.gd" type="Script" id=1]
+[ext_resource path="res://levels/test/bloc/bloc.tscn" type="PackedScene" id=2]
 
 [node name="game" type="Spatial"]
 script = ExtResource( 1 )
diff --git a/client/assets/icon.png b/client/models/icon.png
similarity index 100%
rename from client/assets/icon.png
rename to client/models/icon.png
diff --git a/client/icon.png.import b/client/models/icon.png.import
similarity index 72%
rename from client/icon.png.import
rename to client/models/icon.png.import
index 96cbf4629a557eb7339eef87ad61b7e7d8c8f0e7..5db8c9d0b777b6730ddd9245a307d6a0dd0fd379 100644
--- a/client/icon.png.import
+++ b/client/models/icon.png.import
@@ -2,15 +2,15 @@
 
 importer="texture"
 type="StreamTexture"
-path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+path="res://.import/icon.png-efaa2af14617fe3f60d966f4e1ebca97.stex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://icon.png"
-dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
+source_file="res://models/icon.png"
+dest_files=[ "res://.import/icon.png-efaa2af14617fe3f60d966f4e1ebca97.stex" ]
 
 [params]
 
diff --git a/client/assets/entities/playerArrow/playerArrow.png b/client/models/player/playerArrow/playerArrow.png
similarity index 100%
rename from client/assets/entities/playerArrow/playerArrow.png
rename to client/models/player/playerArrow/playerArrow.png
diff --git a/client/assets/icon.png.import b/client/models/player/playerArrow/playerArrow.png.import
similarity index 56%
rename from client/assets/icon.png.import
rename to client/models/player/playerArrow/playerArrow.png.import
index fe09de77b570be2b21f561d3335ba0a4834019ae..50ed1dce49f68ed72a7591fe62aaf9456eb45dc9 100644
--- a/client/assets/icon.png.import
+++ b/client/models/player/playerArrow/playerArrow.png.import
@@ -2,8 +2,8 @@
 
 importer="texture"
 type="StreamTexture"
-path.s3tc="res://.import/icon.png-b6a7fb2db36edd3d95dc42f1dc8c1c5d.s3tc.stex"
-path.etc2="res://.import/icon.png-b6a7fb2db36edd3d95dc42f1dc8c1c5d.etc2.stex"
+path.s3tc="res://.import/playerArrow.png-0844ae524b11e2d15288f73291626523.s3tc.stex"
+path.etc2="res://.import/playerArrow.png-0844ae524b11e2d15288f73291626523.etc2.stex"
 metadata={
 "imported_formats": [ "s3tc", "etc2" ],
 "vram_texture": true
@@ -11,8 +11,8 @@ metadata={
 
 [deps]
 
-source_file="res://assets/icon.png"
-dest_files=[ "res://.import/icon.png-b6a7fb2db36edd3d95dc42f1dc8c1c5d.s3tc.stex", "res://.import/icon.png-b6a7fb2db36edd3d95dc42f1dc8c1c5d.etc2.stex" ]
+source_file="res://models/player/playerArrow/playerArrow.png"
+dest_files=[ "res://.import/playerArrow.png-0844ae524b11e2d15288f73291626523.s3tc.stex", "res://.import/playerArrow.png-0844ae524b11e2d15288f73291626523.etc2.stex" ]
 
 [params]
 
diff --git a/client/project.godot b/client/project.godot
index 3ba3c32058feec4b17dd861a4eb85b5e3dcf7ac4..8048c79bb543536fa0d9dab757afacfc13e00440 100644
--- a/client/project.godot
+++ b/client/project.godot
@@ -16,12 +16,12 @@ _global_script_class_icons={
 [application]
 
 config/name="client"
-run/main_scene="res://scenes/levels/lobby/lobby.tscn"
+run/main_scene="res://levels/lobby/lobby.tscn"
 config/icon="res://assets/icon.png"
 
 [autoload]
 
-gamestate="*res://scenes/autoloads/gamestate.gd"
+gamestate="*res://autoloads/gamestate.gd"
 
 [input]