a bit more on goal types + tidied up and got isabelle working without eval