 			@addConnection thisMap, name, map, target
 
 	handleMap: (id, path, level) ->
-		@generateConnections id, path, level
 		connections = @getConnections id
 
-		if level is 1
-			@generateStart path, 1, connections
+		map =
+			if level is 1
+				@generateStart path, 1, connections
 
-		else if level > 1
-			@generateCave path, (level - 1), connections
+			else if level > 1
+				@generateCave path, (level - 1), connections
+
+		FeatureGen.generateFeatures path, level, map
+
+		map
 
 	generateStart: (path, level, connections) ->
 		MapGen.generateBigRoom path, level, connections, 80, 21

	generateCave: (path, level, connections) ->
		map = MapGen.generateCellularAutomata path, level, connections, 100, 50

		map

	handleCreatures: (map, path, level) ->
		if level > 1
			@generateCaveEntities map, path, (level - 1)

	generateCaveEntities: (map, path, level) ->
		## Creatures

		[path, level] = id.split '-'
		level = Number level

		@generateConnections id, path, level
		
		map = @handleMap id, path, level

		map.id = id

		map

