add a garbage collector and replace all calls to malloc for heap allocated variables in the interpreter such as strings with the garbage collector allocator, investigate changing all stack allocations of Value structs to arena allocations to avoid stack overflows.