exceptions thrown by nodes are wrapped as a runtime exception such that they can be thrown further outside, this makes debugging easier