Add `defsafe` macro for creating safe fns
Add proper logging
Add `bang` to unsafe model functions