This avoids the dispatch having to free values.
This allows multiple return values which makes things a lot easier.