diff --git a/Makefile b/Makefile
index f66fb327e..59a097554 100644
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,7 @@ hugo : hugo/node_modules open_current # openH
- hugo --disableFastRender --buildDrafts --source hugo -p $(port) server
open_current:
-- open http://localhost:4242/~kleinen/classes/ws2023
+- open http://localhost:$(port)/~kleinen/classes/ws2023/info1/
hugo1 : hugo/node_modules openI
- hugo --disableFastRender --buildDrafts --source hugo -p $(port) server
diff --git a/hugo/content/classes/ws2023/info1/labs/exercise-01-kara.md b/hugo/content/classes/ws2023/info1/labs/exercise-01-kara.md
new file mode 100644
index 000000000..5d9d177b9
--- /dev/null
+++ b/hugo/content/classes/ws2023/info1/labs/exercise-01-kara.md
@@ -0,0 +1,112 @@
+---
+title: 'Old Exercise 01: Programming Kara'
+author: kleinen
+source: https://github.com/htw-imi-info1/exercise01-kara
+draft: true
+---
+
+Source code for this exercise: {{< source >}}
+
+## Pre-Lab
+Each lab assignment comes with a pre-lab section. Usually, it includes excercises and research questions that prepare you for the lab assignment.
+You're expected to complete these *before* you come to the lab.
+
+1. [Download the Scenarios][1] and read through the Kara programming exercises in the assignment.
+2. Write down how Kara could solve the task for each one of them. For example, if the programming exercise was Exercise 4 from [Worksheet 1](../../material/info1-02-worksheet-kara-1.pdf), where Kara was to move in a Square and drop a leaf in each corner, you could write down something as this:
+
+ 1. walk one edge (call move n times),
+ 2. drop a leaf
+ 3. turn right
+ 4. repeat 4 times from step 1
+
+5. Make use of Greenfoots act()-loop - split the problem into repeating steps, and the position that Kara should be in after this step. In the example above, each call to the act() method should make kara walk one side, having her face in the direction of the next side at the end of each step.
+4. When designing the algorithms, think of useful methods that help you/make your tasks easier and name them/use them in your algorithm description.
+
+## Assignment
+
+[Download the scenarios for these exercises][1] if you haven't already done so for the prelab.
+Solve all Programming Exercises using the according scenarios, and upload the all scenarios as a zip file.
+
+### Hints
+
+For all problems, make sure to extract methods where appropriate to make the source code more readable.
+
+Most of the problems here are extensions of problems we've already solved in class / within the two worksheets.
+So it's usually a good idea to first identify a similar problem we've done in class
+and modify the solution we did there.
+So get out your [Worksheet 2](../../material/info1-04-worksheet-kara-2.pdf) and compare!
+Note that the solutions are also available:
+[https://github.com/htw-imi-info1/kara/tree/public-solution](https://github.com/htw-imi-info1/kara/tree/public-solution)
+And here's a link to the branch containing the exercises we did in class: [branch ss2022](https://github.com/htw-imi-info1/kara/tree/ss2022)
+
+### 1. Count leaves laid
+(lab01_kara01): Using an integer variable, make Kara lay down 10 leaves in the middle lane.
+
+| Scenario after program was run |
+|:-----------------------------------------------------|
+| ![10 Leaves](../images/kara/kara-exercise-01-01.jpg) |
+
+
+### 2. Kara in the Tunnel
+(lab01_kara02): Kara is afraid of Tunnels. When entering the tunnel, Kara is scared and drops one leaf; then she walks through the tunnel (without dropping further leaves) and immediately stops after leaving the tunnel. Note that “in the tunnel” means that there is a tree on both sides, not just on one. Provide a general solution and Test it with both Worlds in the scenario.
+
+| | |
+|:------|:------------------------------------------------------|
+| Start | ![Start](../images/kara/kara-exercise01-02-start.jpg) |
+| End | ![End](../images/kara/kara-exercise01-02-end.jpg) |
+
+### 3. Leaves in the forest I
+(lab01_kara03): Building on Exercise 7 of Worksheet 1, where Kara looks for a leaf in front of him, modify the algorithm to make her able to walk around 2 or more trees in a row.
+
+| Scenario |
+|:-------------------------------------------------------|
+| ![Forest](../images/kara/kara-exercise01-03-start.jpg) |
+
+### 4. Leaves in the forest II
+
+(lab01_kara04): In this forest, each field has exactly two neighboring free fields, one of them behind Kara, and the other one either to the left, in front or on the right. Make Kara move through the forest and find the leaf.
+
+| Scenario |
+|:-------------------------------------------------------|
+| ![Forest](../images/kara/kara-exercise01-04-start.jpg) |
+
+### 5. Picture Inversion
+(lab01_kara05) Program Kara such that it will create an “inverse picture” within a tree rectangle. E.g. starting as in KaraWorld05, as in the first picture, the picture should look like the second picture after the program has run.
+
+| Before | After |
+|:------------------------------------------------------|:----------------------------------------------------|
+| ![Start](../images/kara/kara-exercise01-07-start.jpg) | ![End](../images/kara/kara-exercise01-inverted.jpg) |
+
+
Start Image
+End Image
+
+### 6. Draw a Spiral
+ (lab01_kara06) Draw a Spiral like the one shown in the picture.
+![spiral](../images/kara/kara-exercise01-spiral.jpg)
+
+
+### 7. (for the bored:) Make Kara add two numbers in binary format.
+For the bored exercises are optional!
+ In lab01_kara07 the world creates two random 8-bit binary numbers, a leaf means 1, no leaf means 0. Make Kara add them up using place value and carrying, which is basically the same as [adding up decimal numbers using place value and carrying](https://www.khanacademy.org/math/4th-engage-ny/engage-4th-module-1/4th-module-1-topic-d/v/carrying-when-adding-three-digit-numbers). [Here's an explanation how to do it for binary numbers.](https://www.wikihow.com/Add-Binary-Numbers#Addingbinary_Numbers_Using_Place_Value_sub)
+
+ ![Result](../images/kara/kara-exercise01-07-before.jpg)Start Image
+
+![Result](../images/kara/kara-exercise01-07-after.jpg)
+Result
+
+## Post-Lab, AKA What to Turn In
+
+Please upload 2 Files to Moodle:
+
+1. A PDF with your Lab Report, containing your answers to the Pre-Lab. You can order them as you like, e.g.
+ combine the algorithm sketched in the prelab with the algorithm that actually worked in the lab rather than having a section "prelab" and "lab report".
+2. The Scenario with your solutions in each Kara’s act method as a ZIP file.
+
+Read the info on the [Lab Index](../) page again if you're unsure about the nature of the lab reports - or simply ask!
+
+ [1]: https://github.com/htw-imi-info1/exercise01-kara
+
+## Links to the Worksheets
+
+ * [Worksheet 1](../../material/info1-02-worksheet-kara-1.pdf)
+ * [Worksheet 2](../../material/info1-04-worksheet-kara-2.pdf)
diff --git a/hugo/content/classes/ws2023/info1/labs/exercise-01.md b/hugo/content/classes/ws2023/info1/labs/exercise-01.md
index 3ac053dd3..b7a1db76a 100644
--- a/hugo/content/classes/ws2023/info1/labs/exercise-01.md
+++ b/hugo/content/classes/ws2023/info1/labs/exercise-01.md
@@ -1,112 +1,138 @@
---
-title: 'Exercise 01: Programming Kara'
+title: 'Exercise 01: Sending Messages to Objects'
author: kleinen
-source: https://github.com/htw-imi-info1/exercise01-kara
-draft: true
+source: https://github.com/htw-imi-info1/chapter01
+draft: false
+hasMermaid: true
---
-
-Source code for this exercise: {{< source >}}
-
-## Pre-Lab
-Each lab assignment comes with a pre-lab section. Usually, it includes excercises and research questions that prepare you for the lab assignment.
-You're expected to complete these *before* you come to the lab.
-
-1. [Download the Scenarios][1] and read through the Kara programming exercises in the assignment.
-2. Write down how Kara could solve the task for each one of them. For example, if the programming exercise was Exercise 4 from [Worksheet 1](../../material/info1-02-worksheet-kara-1.pdf), where Kara was to move in a Square and drop a leaf in each corner, you could write down something as this:
-
- 1. walk one edge (call move n times),
- 2. drop a leaf
- 3. turn right
- 4. repeat 4 times from step 1
-
-5. Make use of Greenfoots act()-loop - split the problem into repeating steps, and the position that Kara should be in after this step. In the example above, each call to the act() method should make kara walk one side, having her face in the direction of the next side at the end of each step.
-4. When designing the algorithms, think of useful methods that help you/make your tasks easier and name them/use them in your algorithm description.
+```mermaid
+
+sequenceDiagram
+ actor You
+ create Participant Picture
+ You->>+Picture:new()
+ You->>+Picture:draw()
+ create Participant Circle
+ Picture->>+Circle: new()
+ Circle-->>-Picture:circle
+ Picture->>+Circle: makeVisible()
+ Circle-->>-Picture:void
+ Picture-->>-You:void
+
+```
+## What to bring to lab
+
+**P1.** In the lecture we have talked about data types called int and String. Java has more predefined primitive data types. What are they? Record where you found this information.
+
+**P2.** What are the types of the following values?
+
+ 0
+ "hello"
+ 101
+ -13
+ true
+ "true"
+ "61"
+ '7'
+ 3.1415
+
+**P3.** Pick up a book—you should have at least one at home. Is it an object or a class? If it is a class, name some objects. If it is an object, name the class. Give your reasoning.
+
+**P4.** Consider the Car example we did in class. (You'll find it in the slides.) The examples shows two attributes of cars, color and location.
+collect some more attributes that would make sense for cars. Which of them will stay the same over a car's lifetime and which of them will probably change? (If you don't like cars, feel free to do the same for Bicycles).
+
+**P4.** What class does the following constructor (signature) belong to? How many formal parameters does it have? What are their types?
+
+```java
+public Student(String fullName, String studentID)
+```
+If you will be using your own laptop in the lab, please [install BlueJ 5.2.0](https://www.bluej.org/) and [Greenfoot 3.8.0](https://www.greenfoot.org/download) before you come to lab. Downloads are available for all platforms—it's written in Java! Write once, run anywhere!
+More Info on how to work in the Lab can be found in [last week's startup exercise](../exercise-00), which was part of the Erstis-Introduction.
+
+## Post-Lab, AKA What To Turn In
+
+Your completed assignment, submitted in Moodle as a pdf, should include:
+
+- a description of what you did during the lab, including a record of how you got BlueJ and Greenfoot started and how you produced the pdf
+- a screenshot of your scene. How did you get a screenshot produced?
+- A brief summary of what, if anything, you learned during this exercise.
+- the names and roles of any collaborators in any parts of the exercise.
+
+Lab assignments are due as shown in Moodle. They may, of course, be turned in earlier. You hand them in by preparing the report in PDF together in your group (identical file with all your names on the first page!).
+**Each member of the group submits their own copy of the report.**
## Assignment
-[Download the scenarios for these exercises][1] if you haven't already done so for the prelab.
-Solve all Programming Exercises using the according scenarios, and upload the all scenarios as a zip file.
-
-### Hints
-
-For all problems, make sure to extract methods where appropriate to make the source code more readable.
-
-Most of the problems here are extensions of problems we've already solved in class / within the two worksheets.
-So it's usually a good idea to first identify a similar problem we've done in class
-and modify the solution we did there.
-So get out your [Worksheet 2](../../material/info1-04-worksheet-kara-2.pdf) and compare!
-Note that the solutions are also available:
-[https://github.com/htw-imi-info1/kara/tree/public-solution](https://github.com/htw-imi-info1/kara/tree/public-solution)
-And here's a link to the branch containing the exercises we did in class: [branch ss2022](https://github.com/htw-imi-info1/kara/tree/ss2022)
-
-### 1. Count leaves laid
-(lab01_kara01): Using an integer variable, make Kara lay down 10 leaves in the middle lane.
-
-| Scenario after program was run |
-|:-----------------------------------------------------|
-| ![10 Leaves](../images/kara/kara-exercise-01-01.jpg) |
+Remember to keep a logbook where you put down what you were doing.
+### 1. Figures, House and Picture
-### 2. Kara in the Tunnel
-(lab01_kara02): Kara is afraid of Tunnels. When entering the tunnel, Kara is scared and drops one leaf; then she walks through the tunnel (without dropping further leaves) and immediately stops after leaving the tunnel. Note that “in the tunnel” means that there is a tree on both sides, not just on one. Provide a general solution and Test it with both Worlds in the scenario.
+Download the source code for chapter 1 (if you haven't already done so) from Github: {{< source >}}
-| | |
-|:------|:------------------------------------------------------|
-| Start | ![Start](../images/kara/kara-exercise01-02-start.jpg) |
-| End | ![End](../images/kara/kara-exercise01-02-end.jpg) |
+1. In the figures project:
+ 1. Create a Circle, a Square, a Triangle, and two Persons.
+ Oops, where is the second Person? How can you make both visible on the screen?
+ 2. Try out some more methods on the Figures. You are sending messages to objects!
-### 3. Leaves in the forest I
-(lab01_kara03): Building on Exercise 7 of Worksheet 1, where Kara looks for a leaf in front of him, modify the algorithm to make her able to walk around 2 or more trees in a row.
-| Scenario |
-|:-------------------------------------------------------|
-| ![Forest](../images/kara/kara-exercise01-03-start.jpg) |
+3. In the house project:
+ 1. Create a Picture and call its draw() method.
+ 2. Now, find the draw() method in the Picture class. What does it do?
+ 3. Try to add a person to the Picture.
+ 4. Alter the draw() method to modify your picture as you like, including the Person.
-### 4. Leaves in the forest II
-(lab01_kara04): In this forest, each field has exactly two neighboring free fields, one of them behind Kara, and the other one either to the left, in front or on the right. Make Kara move through the forest and find the leaf.
+### 2. Lab Class List
-| Scenario |
-|:-------------------------------------------------------|
-| ![Forest](../images/kara/kara-exercise01-04-start.jpg) |
+By now, you have probably experienced that the objects in your Object Bench disappear whenever the Java Runtime is re-started.
+Objects are created dynamically by the program. They are not persistent. [There's a trick to store your object bench, however.](/material/info1/save_object_bench/)
-### 5. Picture Inversion
-(lab01_kara05) Program Kara such that it will create an “inverse picture” within a tree rectangle. E.g. starting as in KaraWorld05, as in the first picture, the picture should look like the second picture after the program has run.
+Open the lab-class project.
-| Before | After |
-|:------------------------------------------------------|:----------------------------------------------------|
-| ![Start](../images/kara/kara-exercise01-07-start.jpg) | ![End](../images/kara/kara-exercise01-inverted.jpg) |
+1. Try out the Classes
+ 1. create an Instance of Student.
+ 2. create an LabClass.
+ 3. enroll the Student in the Class by calling `enrollStudent(Student newStudent)`. You need to provide an instance of class Student as a parameter. You can do so by either typing the
+ instance name or just double-clicking on the object in the workbench.
+ 4. call `printList()` on LabClass
+1. Complete the `createGroup()` method in `Info1LabGroup`: it should create a LabClass with Student objects for each in your Lab Group in it. (You do not need to examine or change the code of the other classes).
+ 1. create an instance of LabClass. don't forget to set all attributes!
+ 1. create an instances of `Student` for each member of your group as you work together on this exercise. Don't forget to add the pronouns they use by using `setPronouns()``.
+ 3. enroll the students in the class
+ 4. call `printList()` on LabClass and check wether all information is complete.
-
Start Image
-End Image
+Add a screenshot of your `createGroup()` method and the printout to your lab report.
+### 3. Kara
-### 6. Draw a Spiral
- (lab01_kara06) Draw a Spiral like the one shown in the picture.
-![spiral](../images/kara/kara-exercise01-spiral.jpg)
+Now we do the same with Kara - sending messages to the Kara object, and then putting them together to write little programs.
+#### 1. Square-Drop
-### 7. (for the bored:) Make Kara add two numbers in binary format.
-For the bored exercises are optional!
- In lab01_kara07 the world creates two random 8-bit binary numbers, a leaf means 1, no leaf means 0. Make Kara add them up using place value and carrying, which is basically the same as [adding up decimal numbers using place value and carrying](https://www.khanacademy.org/math/4th-engage-ny/engage-4th-module-1/4th-module-1-topic-d/v/carrying-when-adding-three-digit-numbers). [Here's an explanation how to do it for binary numbers.](https://www.wikihow.com/Add-Binary-Numbers#Addingbinary_Numbers_Using_Place_Value_sub)
+1. Open the [01-04-square-drop](https://github.com/htw-imi-info1/chapter01/tree/main/kara/01-04-square-drop) project with Greenfoot.
+2. create an instance of the `Kara` class (the gray Kara).
+3. This class implements all of Kara's special methods. call it's `move()` method, and try out some more methods.
- ![Result](../images/kara/kara-exercise01-07-before.jpg)Start Image
+ ![Methods are in gray Kara](./grayKara.jpg)
-![Result](../images/kara/kara-exercise01-07-after.jpg)
-Result
+ 2. Now, get back to the MyKara instance (the red Kara). It inherits all methods in its super class `Kara` (as well as from `Kara`´s super class `Actor` and its superclass `Object`) - thus, you find the methods under "inherited from Kara".
+
+ ![Call Parent Method](./call-parent-method.jpg)
-## Post-Lab, AKA What to Turn In
+ 5. make MyKara walk 4 fields forward and then turn right. Put this in it's act() method!
+ 6. now, click on act() several times.
+ 7. click on run. This will call act() in an indefinite loop.
+ 8. (Challenge) - can you figure out how to make it stop after one round? After TwoRounds?
+ 9. (Challenge) - Now that it stops, you can drop a leaf in each corner.
-Please upload 2 Files to Moodle:
+### 2. Around Tree
-1. A PDF with your Lab Report, containing your answers to the Pre-Lab. You can order them as you like, e.g.
- combine the algorithm sketched in the prelab with the algorithm that actually worked in the lab rather than having a section "prelab" and "lab report".
-2. The Scenario with your solutions in each Kara’s act method as a ZIP file.
+1. open the [01-05-aroundTree](https://github.com/htw-imi-info1/chapter01/tree/mainkara/01-05-aroundTree) project in Greenfoot.
+2. make Kara walk around the tree by adding the necessary method calls to the act()method.
-Read the info on the [Lab Index](../) page again if you're unsure about the nature of the lab reports - or simply ask!
+Include Screenshots of your completed act() methods in your report.
- [1]: https://github.com/htw-imi-info1/exercise01-kara
-## Links to the Worksheets
+### Writeup
- * [Worksheet 1](../../material/info1-02-worksheet-kara-1.pdf)
- * [Worksheet 2](../../material/info1-04-worksheet-kara-2.pdf)
+You will be doing your writeup at home. Use the notes that you took in your logbook.
+Submit your lab report to the Moodle area.
\ No newline at end of file
diff --git a/hugo/content/classes/ws2023/info1/labs/exercise-01/call-parent-method.jpg b/hugo/content/classes/ws2023/info1/labs/exercise-01/call-parent-method.jpg
new file mode 100644
index 000000000..339ce8b3a
Binary files /dev/null and b/hugo/content/classes/ws2023/info1/labs/exercise-01/call-parent-method.jpg differ
diff --git a/hugo/content/classes/ws2023/info1/labs/exercise-01/grayKara.jpg b/hugo/content/classes/ws2023/info1/labs/exercise-01/grayKara.jpg
new file mode 100644
index 000000000..adca2ebed
Binary files /dev/null and b/hugo/content/classes/ws2023/info1/labs/exercise-01/grayKara.jpg differ
diff --git a/hugo/content/classes/ws2023/info1/labs/exercise-01/kara-methods.jpg b/hugo/content/classes/ws2023/info1/labs/exercise-01/kara-methods.jpg
new file mode 100644
index 000000000..cb1c86a52
Binary files /dev/null and b/hugo/content/classes/ws2023/info1/labs/exercise-01/kara-methods.jpg differ
diff --git a/hugo/content/classes/ws2023/info1/labs/exercise-02.md b/hugo/content/classes/ws2023/info1/labs/exercise-02.md
index c9859233f..7415b601d 100644
--- a/hugo/content/classes/ws2023/info1/labs/exercise-02.md
+++ b/hugo/content/classes/ws2023/info1/labs/exercise-02.md
@@ -9,6 +9,15 @@ source_ok: true
solution_pushed: true
---
+Notes: Class definitions go here - ticket machine!
+
+
+
+
+
+
+
+
![Book](../../images/ticket-5277919863_b741ccde84_b.jpg)
Printed Ticket. [Sludge G](https://www.flickr.com/photos/sludgeulper/5277919863/)
diff --git a/hugo/content/classes/ws2023/info1/labs/mermaid.txt b/hugo/content/classes/ws2023/info1/labs/mermaid.txt
new file mode 100644
index 000000000..1747329f3
--- /dev/null
+++ b/hugo/content/classes/ws2023/info1/labs/mermaid.txt
@@ -0,0 +1,77 @@
+sequenceDiagram
+ Object1->>+Object2: message1
+ Object2->>+Object3: message2
+ Object3->>+Object4: message3
+ Object4->>+Object5: message4
+ Object5->>+Object6: message5
+ Object6->>-Object5: message6
+ Object5->>-Object4: message7
+ Object4->>-Object3: message8
+ Object3->>-Object2: message9
+ Object2->>-Object1: message9
+
+
+
+sequenceDiagram
+ actor You
+ You->>+Object1:message0
+ Object1->>+Object2: message1
+ Object2->>+Object3: message2
+ Object3->>+Object4: message3
+ Object4->>+Object5: message4
+ Object5->>+Object6: message5
+ Object6->>-Object5: message6
+ Object5->>-Object4: message7
+ Object4->>-Object3: message8
+ Object3->>-Object2: message9
+ Object2->>-Object1: message9
+
+
+sequenceDiagram
+ Object1->>+Object2: message1
+ Object2->>+Object3: message2
+ Object3->>+Object4: message3
+ Object4->>+Object5: message4
+ Object5->>+Object6: message5
+ Object6->>-Object5: message6
+ Object5->>-Object4: message7
+ Object4->>-Object3: message8
+ Object3->>-Object2: message9
+ Object2->>-Object1: message9
+
+sequenceDiagram
+ Kara->>+Kara: move()
+ Kara->>+Kara: move()
+ Kara->>+Kara: move()
+ Kara->>+Kara: move()
+ Kara->>+Kara: move()
+
+
+sequenceDiagram
+ actor You
+ You->>+Kara: act()
+ activate Kara
+ Kara-->>You:
+
+
+sequenceDiagram
+ actor You
+ activate You
+ activate Kara
+ You->>+Kara: act()
+ activate Kara
+ Kara->>+Kara: move()
+ Kara->>+Kara: move()
+
+ Kara-->>You:
+
+
+sequenceDiagram
+ actor You
+ participant circle1
+ participant square1
+ participant triangle1
+ You->>+circle1: moveUp()
+ You->>+circle1: moveDown()
+ You->>+square1: moveUp()
+ You->>+triangle1: moveLeft()
diff --git a/hugo/content/classes/ws2023/info1/resources/_index.md b/hugo/content/classes/ws2023/info1/resources/_index.md
index 752964abd..7e3038259 100644
--- a/hugo/content/classes/ws2023/info1/resources/_index.md
+++ b/hugo/content/classes/ws2023/info1/resources/_index.md
@@ -4,10 +4,14 @@ author: kleinen
draft: false
weight: 20
CourseNav: Resources
+subpages: false
---
-
This is a long page. You may want to open the Table of Contents above!
+
+## Material on this Site
+
+{{< course_material >}}
## Kara
* [Worksheet 1](../resources/info1-02-worksheet-kara-1.pdf)
@@ -82,5 +86,3 @@ ChatGPT has proven to be quite good at many programming tasks, and you will most
You may, and should however, use ChatGPT (and also plain googling) to help whenever you are stuck. If you do so, document that you were doing so by referring to it as a source, and check the validity of the answer. In fact, I am very much interested in learning through your reports in which way ChatGPT proved to be useful to you.
-
-
diff --git a/hugo/content/classes/ws2023/info1/resources/videos.md b/hugo/content/classes/ws2023/info1/resources/videos.md
deleted file mode 100644
index afaaf9d6d..000000000
--- a/hugo/content/classes/ws2023/info1/resources/videos.md
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-[(1) Chapter 1, video 2: exploring fundamental concepts via BlueJ. - YouTube](https://www.youtube.com/watch?v=Q1BuFi4UvpQ)
diff --git a/hugo/content/material/info1/_index.md b/hugo/content/material/info1/_index.md
new file mode 100644
index 000000000..ab021f967
--- /dev/null
+++ b/hugo/content/material/info1/_index.md
@@ -0,0 +1,8 @@
+---
+title: "Chapter Info1"
+draft: false
+weight: 10
+---
+### Material in this chapter:
+
+{{< subpages depth = "3">}}
diff --git a/hugo/content/material/info1/save_object_bench.md b/hugo/content/material/info1/save_object_bench.md
new file mode 100644
index 000000000..1eaa0c7e3
--- /dev/null
+++ b/hugo/content/material/info1/save_object_bench.md
@@ -0,0 +1,42 @@
+---
+title: BlueJ Trick - Save your Object Bench using Test Fixtures
+author: kleinen
+draft: false
+tags: ['bluej']
+courses: ['info1']
+---
+
+You can save and re-create your Object Bench with a trick that uses the Unit Test Support in BlueJ, especially “Object Bench to Test Fixture” “Test Fixture to Object Bench”:
+
+### 1. Save the state of your object bench
+Let’s say you have created a lot of objects manually and want to reuse them. To save the state of your Object Bench, first create a Test Class for an arbitrary class:
+![](../save_object_bench/image_2.png)
+
+Now, call “Object Bench to Test Fixture” from the Test Class’ context menu.
+
+![](../save_object_bench/image_3.png)
+
+This will save all variables for the created objects as Field declarations, and all method calls in the method annotated with
+@BeforeEach:
+
+![](../save_object_bench/image_6.png)
+
+You can then edit and expand this method - e.g. change student1&2 to better variable names, or even
+add more objects simply with copy&paste.
+Remember to adjust the variable declarations at the top of the class!
+
+![](../save_object_bench/image_7.png)
+
+### 2. Re-create the Objects
+You can then re-create the objects using “TestFixture to Object Bench” form the Test Class Menu:
+
+![](../save_object_bench/image_8.png)
+
+Voila! Here’s your object bench again with the new variable names:
+
+![](../save_object_bench/image_9.png)
+
+### 3. … and repeat:
+You can even call methods on your re-created Work Bench and store them again using “Object Bench to Test Fixture”. As there is already a @BeforeEach method, you need to confirm to replace it:
+
+![](../save_object_bench/image_10.png)
diff --git a/hugo/content/material/info1/save_object_bench/image.png b/hugo/content/material/info1/save_object_bench/image.png
new file mode 100644
index 000000000..a49d6c1a8
Binary files /dev/null and b/hugo/content/material/info1/save_object_bench/image.png differ
diff --git a/hugo/content/material/info1/save_object_bench/image_10.png b/hugo/content/material/info1/save_object_bench/image_10.png
new file mode 100644
index 000000000..611f32532
Binary files /dev/null and b/hugo/content/material/info1/save_object_bench/image_10.png differ
diff --git a/hugo/content/material/info1/save_object_bench/image_2.png b/hugo/content/material/info1/save_object_bench/image_2.png
new file mode 100644
index 000000000..f66e560a3
Binary files /dev/null and b/hugo/content/material/info1/save_object_bench/image_2.png differ
diff --git a/hugo/content/material/info1/save_object_bench/image_3.png b/hugo/content/material/info1/save_object_bench/image_3.png
new file mode 100644
index 000000000..0f93e70fa
Binary files /dev/null and b/hugo/content/material/info1/save_object_bench/image_3.png differ
diff --git a/hugo/content/material/info1/save_object_bench/image_6.png b/hugo/content/material/info1/save_object_bench/image_6.png
new file mode 100644
index 000000000..01ad03e30
Binary files /dev/null and b/hugo/content/material/info1/save_object_bench/image_6.png differ
diff --git a/hugo/content/material/info1/save_object_bench/image_7.png b/hugo/content/material/info1/save_object_bench/image_7.png
new file mode 100644
index 000000000..7274c2d1e
Binary files /dev/null and b/hugo/content/material/info1/save_object_bench/image_7.png differ
diff --git a/hugo/content/material/info1/save_object_bench/image_8.png b/hugo/content/material/info1/save_object_bench/image_8.png
new file mode 100644
index 000000000..f4e59225d
Binary files /dev/null and b/hugo/content/material/info1/save_object_bench/image_8.png differ
diff --git a/hugo/content/material/info1/save_object_bench/image_9.png b/hugo/content/material/info1/save_object_bench/image_9.png
new file mode 100644
index 000000000..c6b8a7cb7
Binary files /dev/null and b/hugo/content/material/info1/save_object_bench/image_9.png differ
diff --git a/hugo/themes/greenpage/layouts/_default/_markup/render-codeblock-mermaid.html b/hugo/themes/greenpage/layouts/_default/_markup/render-codeblock-mermaid.html
index 59641551c..94ea0cad0 100644
--- a/hugo/themes/greenpage/layouts/_default/_markup/render-codeblock-mermaid.html
+++ b/hugo/themes/greenpage/layouts/_default/_markup/render-codeblock-mermaid.html
@@ -1,4 +1,4 @@
-
{{- .Inner | safeHTML }} -