added session ID generation