diff --git a/cmd/game/main.go b/cmd/game/main.go
index d9d32b9..40d2a08 100644
--- a/cmd/game/main.go
+++ b/cmd/game/main.go
@@ -64,7 +64,7 @@ func main() {
 	//fixme
 	level, rooms := mapgens.DefaultGen(gamemap.NewLevel(mainCtx, "test", 1))
 	State.Level = level
-	vp := mainwindow.NewViewPort(40, 0, 60, 47, mw.GetLayer("base"))
+	vp := mainwindow.NewViewPort(30, 0, 70, 47, mw.GetLayer("base"))
 
 
 	screenMgr := types.NewScreenManager(mainCtx)
diff --git a/engine/fov/precomputed_shade/precomputed_shade.go b/engine/fov/precomputed_shade/precomputed_shade.go
index eca682e..4013009 100644
--- a/engine/fov/precomputed_shade/precomputed_shade.go
+++ b/engine/fov/precomputed_shade/precomputed_shade.go
@@ -274,7 +274,7 @@ func (ps *precomputedShade) ComputeFov(level *gamemap.Level, initCoords types.Co
 				for _, maybeNb := range ps.CellList {
 					if  //int(maybeNb.distance) == int(cell.distance-1) &&
 						maybeNb.IsAdjacentTo(&cell.Coords) &&
-						(maybeNb.X == cell.X || maybeNb.Y == cell.Y) &&
+						//(maybeNb.X == cell.X || maybeNb.Y == cell.Y) &&
 						maybeNb.lit > 0 { //magic constant!
 						level.GetTile(cs).Visible = true
 						level.GetTile(cs).Explored = true
diff --git a/engine/gamemap/level.go b/engine/gamemap/level.go
index fd38d60..eebff22 100644
--- a/engine/gamemap/level.go
+++ b/engine/gamemap/level.go
@@ -7,8 +7,8 @@ import (
 )
 
 //fixme move to config
-var mapWidth = 70
-var mapHeight = 50
+var mapWidth = 150
+var mapHeight = 90
 
 
 type Level struct {
diff --git a/engine/gamemap/mapgens/default.go b/engine/gamemap/mapgens/default.go
index 2a6bc3f..38da59e 100644
--- a/engine/gamemap/mapgens/default.go
+++ b/engine/gamemap/mapgens/default.go
@@ -60,33 +60,39 @@ func DefaultGen(l *gamemap.Level) (*gamemap.Level, []*gamemap.Room) {
 		//addStairs(rooms)
 		//itemize(rooms)
 	}
+	fges := map[int]types.RectFill{
+		1: types.RectFill{
+			Top:         func() *gamemap.Tile { return gamemap.NewWall() },
+			Bottom:      func() *gamemap.Tile { return gamemap.NewWall() },
+			Left:        func() *gamemap.Tile { return gamemap.NewWall() },
+			Right:       func() *gamemap.Tile { return gamemap.NewWall() },
+			BottomLeft:  func() *gamemap.Tile { return gamemap.NewWall() },
+			BottomRight: func() *gamemap.Tile { return gamemap.NewWall() },
+			TopLeft:     func() *gamemap.Tile { return gamemap.NewWall() },
+			TopRight:    func() *gamemap.Tile { return gamemap.NewWall() },
+			Body:        func() *gamemap.Tile { return gamemap.NewFloor() },
+		},
 
-	//fillage := types.RectFill{
-	//	Top: func() *gamemap.Tile {return gamemap.NewWall()},
-	//	Bottom: func() *gamemap.Tile {return gamemap.NewWall()},
-	//	Left: func() *gamemap.Tile {return gamemap.NewWall()},
-	//	Right: func() *gamemap.Tile {return gamemap.NewWall()},
-	//	BottomLeft: func() *gamemap.Tile {return gamemap.NewWall()},
-	//	BottomRight: func() *gamemap.Tile {return gamemap.NewWall()},
-	//	TopLeft: func() *gamemap.Tile {return gamemap.NewWall()},
-	//	TopRight: func() *gamemap.Tile {return gamemap.NewWall()},
-	//	Body: func() *gamemap.Tile {return gamemap.NewFloor()},
-	//}
+		2: types.RectFill{
+			Top:         func() *gamemap.Tile { return gamemap.NewWaterTile() },
+			Bottom:      func() *gamemap.Tile { return gamemap.NewWaterTile() },
+			Left:        func() *gamemap.Tile { return gamemap.NewWaterTile() },
+			Right:       func() *gamemap.Tile { return gamemap.NewWaterTile() },
+			BottomLeft:  func() *gamemap.Tile { return gamemap.NewWaterTile() },
+			BottomRight: func() *gamemap.Tile { return gamemap.NewWaterTile() },
+			TopLeft:     func() *gamemap.Tile { return gamemap.NewWaterTile() },
+			TopRight:    func() *gamemap.Tile { return gamemap.NewWaterTile() },
+			Body:        func() *gamemap.Tile { return gamemap.NewDeepWaterTile() },
+		},
+	}
 
-	fillage := types.RectFill{
-		Top: func() *gamemap.Tile {return gamemap.NewWaterTile()},
-		Bottom: func() *gamemap.Tile {return gamemap.NewWaterTile()},
-		Left: func() *gamemap.Tile {return gamemap.NewWaterTile()},
-		Right: func() *gamemap.Tile {return gamemap.NewWaterTile()},
-		BottomLeft: func() *gamemap.Tile {return gamemap.NewWaterTile()},
-		BottomRight: func() *gamemap.Tile {return gamemap.NewWaterTile()},
-		TopLeft: func() *gamemap.Tile {return gamemap.NewWaterTile()},
-		TopRight: func() *gamemap.Tile {return gamemap.NewWaterTile()},
-		Body: func() *gamemap.Tile {return gamemap.NewDeepWaterTile()},
+	var fillage types.RectFill
+	for _, room := range rooms {
+		fillage = fges[rng.GetWeightedEntity(map[int]int{1:10, 2:1})]
+		room.Blit(fillage, l)
 	}
 
 	for idx, room := range rooms {
-		room.Blit(fillage, l)
 		if idx > 0 {
 			connectRooms(l, room, rooms[idx-1], fillage, rng.Range(0,1))
 		}
diff --git a/ui/mainwindow/viewport.go b/ui/mainwindow/viewport.go
index 4d97eac..0c77ca3 100644
--- a/ui/mainwindow/viewport.go
+++ b/ui/mainwindow/viewport.go
@@ -56,11 +56,11 @@ func (vp *ViewPort) Move(state *gamestate.GameState) {
 	if y < 0 {
 		y = 0
 	}
-	if x > state.Level.W-vp.W - 1 {
-		x = state.Level.W - vp.W - 1
+	if x > state.Level.W - vp.W - 1 {
+		x = state.Level.W - vp.W
 	}
 	if y > state.Level.H-vp.H - 1 {
-		y = state.Level.H - vp.H - 1
+		y = state.Level.H - vp.H
 	}
 	if x != vp.cameraCoords.X || y != vp.cameraCoords.Y {
 		state.FovRecompute <- struct{}{}