session first implementation