The error handling at the moment is based on what feels good, a systematic rewrite of the error handling sections can help