saveWithHooks now returns the saved object
Removed redundant exception encapsulation and code