Added UserSession model and changed user logic to use new model