pulled more session code into ElggSession