visitor refactor
session check