make this.session an accessor and add a lot of tests