making hashing asynchronous and moving into user model