diff --git a/ui/scrnplt.go b/ui/scrnplt.go
index f383ede2bf410fb434d9723cb8034abb5294bdbb..715fc16582508183f7c8080c4d5e385a6f55feaf 100644
--- a/ui/scrnplt.go
+++ b/ui/scrnplt.go
@@ -8,48 +8,51 @@ package ui
 import (
 	"bytes"
 	"fmt"
+
 	"fyne.io/fyne/v2"
 	"fyne.io/fyne/v2/app"
 	"fyne.io/fyne/v2/canvas"
 	"fyne.io/fyne/v2/container"
 	"fyne.io/fyne/v2/dialog"
 	"fyne.io/fyne/v2/storage"
-	"fyne.io/fyne/v2/widget"
 )
 
-func coffee() {
-	print("coffee\n")
-}
-func tea() {
-	print("tea\n")
+func tryfsave(uriw fyne.URIWriteCloser, err error, data []byte, parent fyne.Window) {
+	if err != nil {
+		dialog.ShowError(err, parent)
+		return
+	}
+	if uriw == nil {
+		return // cancel
+	}
+	if _, err := uriw.Write(data); err != nil {
+		fmt.Println("error writing")
+	}
+	if err := uriw.Close(); err != nil {
+		fmt.Println("error closing")
+	}
+	fmt.Printf("trydsave called with %+v %+v", uriw, err)
 }
 
-func trydsave(uriwc fyne.URIWriteCloser, err error) {
-	uriwc.Write([]byte("hello from trydsave\n"))
-	fmt.Printf("trydsave called with %+v %+v", uriwc, err)
-}
-func dsave(parent fyne.Window) {
-	filter := storage.NewExtensionFileFilter([]string{"csv", "abc"})
-	t := dialog.NewFileSave(trydsave, parent)
-	t.SetFileName("f_val.csv")
+func fsave(parent fyne.Window, fdata []byte, suggested string) {
+	filter := storage.NewExtensionFileFilter([]string{"png", "PNG"})
+	ts := func(uriw fyne.URIWriteCloser, err error) {
+		tryfsave(uriw, err, fdata, parent)
+	}
+	t := dialog.NewFileSave(ts, parent)
+	t.SetFileName(suggested)
 	t.SetFilter(filter)
 	t.Show()
-	fmt.Println("dsave called and returning")
-}
 
-func stopme() {
-	print("stopme\n")
+	fmt.Println("dsave called and returning")
 }
 
-type fssavefunc func(fyne.URIReadCloser, error)
-
-func topmenu(parent fyne.Window) *fyne.Menu {
-	ds := func() { dsave(parent) }
-	a := fyne.NewMenuItem("coffee", coffee)
-	b := fyne.NewMenuItem("tea", tea)
+func topmenu(parent fyne.Window, fdata, xdata []byte) *fyne.Menu {
+	ds := func() { fsave(parent, fdata, "func_val.png") } // function values
+	xs := func() { fsave(parent, xdata, "x_trj.png") } 
 	c := fyne.NewMenuItem("save func plot", ds)
-	d := fyne.NewMenuItem("frueh feierabend", stopme)
-	return fyne.NewMenu("a simple menu", a, b, c, d)
+	d := fyne.NewMenuItem("save X trajectory plot", xs)
+	return fyne.NewMenu("actions", c, d)
 }
 
 func fileSaved(f fyne.URIWriteCloser, w fyne.Window) {
@@ -64,44 +67,22 @@ func fileSaved(f fyne.URIWriteCloser, w fyne.Window) {
 	}
 	fmt.Println("Saved to...", f.URI())
 }
-func nothing(...interface{}) {}
-
-// buf2file takes an array of bytes and writes them to a file.
-func buf2file(buf []byte) {
-	var z fyne.URIWriteCloser
-
-	//	NewFileSave(callback func(fyne.URIWriteCloser, error), parent fyne.Window) *FileDialog
-	var win fyne.Window
-	fs := widget.NewButton("File Save", func() {
-		dialog.ShowFileSave(func(writer fyne.URIWriteCloser, err error) {
-			if err != nil {
-				dialog.ShowError(err, win)
-				return
-			}
-			if writer == nil {
-				fmt.Println("Cancelled")
-				return
-			}
-
-			fileSaved(writer, win)
-		}, win)
-	})
-	nothing(fs, z)
-}
 
+func nothing(...interface{}) {}
 func breaker(...interface{}) {}
-func Scrnplt(fdata []byte, xdata []byte) {
+func Scrnplt(fdata, xdata []byte) {
 	a := app.NewWithID("ackley") // Find a way to check if it is happy
-	w := a.NewWindow("container")
+	w := a.NewWindow("Monte Carlo")
 
-	w.SetMainMenu(fyne.NewMainMenu(topmenu(w)))
+	w.SetMainMenu(fyne.NewMainMenu(topmenu(w, fdata, xdata)))
 	fImage := canvas.NewImageFromReader(bytes.NewReader(fdata), "func.png")
 	fImage.FillMode = canvas.ImageFillContain
 	xImage := canvas.NewImageFromReader(bytes.NewReader(xdata), "xdata.png")
 	xImage.FillMode = canvas.ImageFillContain
 	content := container.NewGridWithRows(2, fImage, xImage)
 
-	w.Resize(fyne.NewSize(500, 300))
+	w.Resize(fyne.NewSize(500, 600))
 	w.SetContent(content)
 	w.ShowAndRun()
+	fmt.Println("This was executed after the graphics finished")
 }