- [ ] Use proper casts everywhere - [ ] ErrorPump `message` to `const std::string&` - [ ] `const` methods - [ ] `noexcept` (all) methods - [x] No macros - [ ] Used smart pointers - [ ] Make parents track their children so that the parent isn't destroyed when the child is with std::shared_ptr
messagetoconst std::string&constmethodsnoexcept(all) methods