diff --git a/lib/bsp_loader/src/bsp.rs b/lib/bsp_loader/src/bsp.rs
index 4a32be2..85f141e 100644
--- a/lib/bsp_loader/src/bsp.rs
+++ b/lib/bsp_loader/src/bsp.rs
@@ -124,27 +124,21 @@ pub fn convert<'a>(
 	for brush in &bsp.brushes{
 		let brush_start_idx=brush.brush_side as usize;
 		if let Some(sides)=bsp.brush_sides.get(brush_start_idx..brush_start_idx+brush.num_brush_sides as usize){
-			let mut mb=model::MeshBuilder::new();
-			let color=mb.acquire_color_id(glam::Vec4::ONE);
-			let tex=mb.acquire_tex_id(glam::Vec2::ZERO);
-			let mut polygon_list=Vec::new();
-			for side in sides{
-				if let Some(displacement)=bsp.displacement(side.displacement_info as usize){
-					if let Some(face)=displacement.face(){
-						let normal=mb.acquire_normal_id(valve_transform(face.normal().into()));
-						polygon_list.push(face.vertex_positions().map(|vertex_pos|{
-							let pos=mb.acquire_pos_id(valve_transform(vertex_pos.into()));
-							mb.acquire_vertex_id(model::IndexedVertex{
-								pos,
-								tex,
-								normal,
-								color,
-							})
-						}).collect());
+			let maybe_plane_list:Option<Vec<_>>=sides.iter().map(|side|bsp.plane(side.plane as usize)).collect();
+			if let Some(plane_list)=maybe_plane_list{
+				let mut polygon_list=Vec::new();
+				let mut mb=model::MeshBuilder::new();
+				let color=mb.acquire_color_id(glam::Vec4::ONE);
+				let tex=mb.acquire_tex_id(glam::Vec2::ZERO);
+
+				for (i0,plane0) in plane_list.iter().enumerate().skip(2){
+					for (i1,plane1) in plane_list.iter().enumerate().take(i0){
+						for (i2,plane2) in plane_list.iter().enumerate().take(i1){
+							//TODO
+						}
 					}
 				}
-			}
-			if !polygon_list.is_empty(){
+
 				let polygon_groups=model::PolygonGroup::PolygonList(model::PolygonList::new(polygon_list));
 				let physics_groups=vec![model::IndexedPhysicsGroup{
 					groups:vec![model::PolygonGroupId::new(0)],