There are many ways that code can be debugged. It can done by analyzing code, but is often easier with help of a computer. This can be done by adding printing statements or assertions, but also by using debuggers or interpreters.In this masters thesis the choices done while designing and implementing an interpreter for a subset of the programming language Timber is presented. It allows programs to be debugged in a platform independent manner and is also useful while using Timber as a modeling language. The interpreter tries to show the user what is happening instead of only computing the result.Instead of keeping a static copy of the program code and remembering the position and variables, the interpreter starts out with a copy of the code that is modified during evaluation. This code contains all variables and encompasses the whole state of the program, which can be shown to the user. This gives a complete view of the state of the program instead of just showing a list of all bound variables and the position in the code. This state can be made to resemble a stack trace but with much more details, in fact all details possible. Since all of this information is available as code, the interpreter can actually save the output as a new program that can later be run to continue evaluation.