session mostly functional, just kinda ugly