public EditorController getNewLevel(int columns, int rows) {
		EditorController controller = new EditorController();
		Board currentLevel = new Board(columns, rows);

		controller.setModel(currentLevel);

		LevelEditorView editorView = new LevelEditorView(columns, rows);
		controller.setView(editorView);

		// initialize fields with the empty state
		for (int i = 0; i < rows; i++) {
			for (int j = 0; j < columns; j++) {
				Field field = new Field(FieldState.EMPTY);
				currentLevel.setField(j, i, field);

				// we need the controller for each field for the drag and drop
				// functionality
				FieldController fieldController = new FieldController();
				DraggableElementDestination elementDestination = new DraggableElementDestination(
						fieldController);

				fieldController.setView(elementDestination);
				fieldController.setModel(field);

				editorView.addElement(elementDestination);
			}
		}
		return controller;
	}