Use thiserror and anyhow for more solid error handling
Error handling is currently not great in the library part of this as error context is detached from the error. The context is merely printed before via
eprintln!. I don't really like that and think the error context should be kept in the error itself and then printed where ever you choose in the app part.
I suggest using thiserror and anyhow for proper handling.