refactore to use pre save
fixed bug, this was referencing a promise object