implement session component