feat: add basic session support