some refactor on abstract model
Create user session object
snall modiff