New data structure

@justinvdm I think we can create a `GoError` which extends the standard `Error`. We could then just throw a new `GoError` and let it get handled somewhere higher?