re-implement functionality (in new module) using `@auto_unwrap`