Added callbacks, hashed passwords, and auth to model