This means we get more opaque errors for the clients but it also results in way less code to maintain