Remove need to save user object before user-defined callback is invoked. Prevents issues where there might be required columns in the user table that cause saving an empty user to fail.
Reorganize methods a bit