public void InsertWall(Point from, Point to) { Wall newWall = new Wall(from, to); if (!newWall.IsHorizontal() && !newWall.IsVertical()) { throw new OutOfRangeComponentException(); } else if (!WallInRange(newWall)) { throw new OutOfRangeComponentException(); } else if (TakesOtherWallsPlace(newWall)) { throw new CollinearWallsException(); } else if (TakesAColumnPlace(newWall)) { throw new ColumnInPlaceException(); } else { InsertValidatedWall(newWall); } }